CD는 두가지의 뜻이 있다고 한다.
•
Continuous Delivery (지속적인 제공)
◦
CI의 빌드 자동화, 유닛 및 통합 테스트 수행 후, 이어지는 지속적 제공 프로세스에서는 유효한 코드를 리포지토리에 자동으로 릴리스합니다.
•
Continuous Deployment (지속적인 배포)
◦
프로덕션 준비가 완료된 빌드를 코드 리포지토리에 자동으로 릴리스하는 지속적 제공의 확장된 형태
모두 개발자가 개발에만 집중을 할 수 있게 도와주는 자동화 과정을 말하는것이다.
CD를 구현하기 위해 Github Actions를 사용한다.
필요한 파일들 Repository 내부에 생성
Dockerfile
docker-compose.yml
nginx.conf
Github Actions의 자동화 스크립트 실행시 필요한 환경 변수 들
해당 Repository → Settings → Security → Secrets and variables
GHCR_TOKEN
HOST_PROD
PRIVATE_KEY
CD_DEPLOY_CONFIG
main.yml
맨 처음에 *.yml만 쓰여져 있어서 어떤 파일명을 가져야 하나 고민이 많았는데 다른 분들꺼를 보기도 해서 찾아보니
해당 리포지터리 → Actions → New workflow → set up a workflow yourself 이런식으로 진행하면 main.yml 파일을 작성할 수 있는 공간이 생성된다.
해당 파일을 모두 작성한 뒤에도 Deploy가 진행 되지않는데 Actions Runner가 없기 때문이라고 한다. Runner 설정은 AWS EC2 인스턴스 내부에서 진행이 된다고 한다.
Build container for action use: '/home/ec2-user/actions-runner/_work/_actions/appleboy/ssh-action/v0.1.10/Dockerfile'.
/usr/bin/docker build -t dc4f4d:f89a0d580b254e0d91434cce243488aa -f "/home/ec2-user/actions-runner/_work/_actions/appleboy/ssh-action/v0.1.10/Dockerfile" "/home/ec2-user/actions-runner/_work/_actions/appleboy/ssh-action/v0.1.10"
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=dc4f4d%3Af89a0d580b254e0d91434cce243488aa&target=&ulimits=null&version=1": dial unix /var/run/docker.sock: connect: permission denied
Warning: Docker build failed with exit code 1, back off 6.989 seconds before retry.
/usr/bin/docker build -t dc4f4d:f89a0d580b254e0d91434cce243488aa -f "/home/ec2-user/actions-runner/_work/_actions/appleboy/ssh-action/v0.1.10/Dockerfile" "/home/ec2-user/actions-runner/_work/_actions/appleboy/ssh-action/v0.1.10"
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=dc4f4d%3Af89a0d580b254e0d91434cce243488aa&target=&ulimits=null&version=1": dial unix /var/run/docker.sock: connect: permission denied
Warning: Docker build failed with exit code 1, back off 8.769 seconds before retry.
/usr/bin/docker build -t dc4f4d:f89a0d580b254e0d91434cce243488aa -f "/home/ec2-user/actions-runner/_work/_actions/appleboy/ssh-action/v0.1.10/Dockerfile" "/home/ec2-user/actions-runner/_work/_actions/appleboy/ssh-action/v0.1.10"
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=dc4f4d%3Af89a0d580b254e0d91434cce243488aa&target=&ulimits=null&version=1": dial unix /var/run/docker.sock: connect: permission denied
Error: Docker build failed with exit code 1
JavaScript
복사
씨발
yml
yml
yml
yml
yml
yml
yml