GitLab CI/CD에서 SCP를 통한 배포로 Composer 및 npm 스크립트 실행
GitLab CI/CD에서 SCP를 통한 배포로 Composer 및 npm 스크립트 실행에 대해 설명합니다.
이 가이드에서는 GitLab CI/CD 를 사용하여 npm 스크립트를 통해 자산을 컴파일하면서 PHP 프로젝트의 의존성을 빌드하는 방법을 다룹니다. PHP 및 Node.js의 사용자 정의 버전으로 자체 이미지를 만들 수 있습니다. 간략성을 위해 이 가이드에서는 PHP와 Node.js가 모두 설치된 기존 Docker 이미지 를 사용합니다. image: tetraweb/php 다음 단계는 zip/unzip 패키지를 설치하고 composer를 사용할 수 있도록 하는 것입니다. 이를 before_script 섹션에 배치합니다: before_script: - apt-get update - apt-get install zip unzip - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" - php composer-setup.php - php -r "unlink('composer-setup.php');" 이를 통해 모든 요구 사항이 준비됩니다. 다음으로 composer install 을 실행하여 모든 PHP 의존성을 가져오고 npm install 을 실행하여 Node.js 패키지를 로드합니다. 그런 다음 npm 스크립트를 실행합니다. before_script 섹션에 명령을 추가합니다: before_script: # ... - php composer.phar install - npm install - npm run deploy 이 경우 npm deploy 스크립트는 다음을 수행하는 Gulp 스크립트입니다: CSS 및 JS 컴파일 스프라이트 생성 다양한 자산(이미지, 폰트) 복사 일부 문자열 교체 이 모든 작업은 모든 파일을 라이브 서버에 배포할 준비가 된 build 폴더에 넣습니다. 라이브 서버로 파일 전송 방법 # rsync, SCP 또는 SFTP와 같은 여러 옵션이 있습니다. 지금은 SCP를 사용합니다. 이 작업을 수행하려면 GitLab CI/CD 변수( gitlab.example/your-project-name/variables 에서 액세스 가능)를 추가해야 합니다. 이 변수의 이름을 STAGING_PRIVATE_KEY 로 지정하고 서버의 개인 SSH 키로 설정합니다. 보안 팁 # 업데이트가 필요한 폴더에만 액세스할 수 있는 사용자를 만드세요. 해당 변수를 만든 후 실행 시 Docker 컨테이너에 키가 추가되었는지 확인합니다: before_script: # - .... - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' - mkdir -p ~/.ssh - eval $(ssh-agent -s) - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' 이 스크립트는 다음 작업을 수행합니다: ssh-agent 가 사용 가능한지 확인하
