상세 컨텐츠

본문 제목

도커 이미지 푸시했을 때

카테고리 없음

by 코딩연습중 2025. 7. 16. 14:32

본문

1. putty 접속

2. docker stop phraiz

3. docker rm phraiz

4. docker login -u choeunbin

5. ~~pw 입력

6. docker pull image choeunbin/phraiz:latest

7. (환경변수 수정)

8. 컨테이너 실행

docker run -d \
  --name phraiz \
  --env-file .env \
  --network bridge \
  -p 80:8080 \
  choeunbin/phraiz:latest

 

9.docker ps로 확인

 

 

🚀 배포 플로우

 1. 디플로이 브랜치에 merge/push

깃허브 워크플로우가 choeunbin/phraiz:latest 이미지를 빌드 & 푸시

 2. EC2에 접속 (PuTTY)

3. 기존 컨테이너 종료 & 제거

docker stop phraiz
docker rm phraiz

 

4. Docker Hub 로그인

docker login -u choeunbin

→ 패스워드 입력

 5. 최신 이미지 Pull

docker pull choeunbin/phraiz:latest

6. (필요하면) .env 수정

vi .env

7. 새 컨테이너 실행

docker run -d \
  --name phraiz \
  --env-file .env \
  --network bridge \
  -p 80:8080 \
  choeunbin/phraiz:latest

 

 8. 컨테이너 정상 동작 확인

docker ps

 

 

 

근데 이걸 매번 하기 귀찮아서 deploy.sh를 만들기로 했다!

우선 deploy.env를 만들어서 docker password(token)을 환경변수로 저장한 뒤,

#!/bin/bash

source .env

echo "✅ stop & remove old container"
docker stop phraiz
docker rm phraiz

echo "✅ login to Docker Hub"
echo "$DOCKER_PASSWORD" | docker login -u choeunbin --password-stdin

echo "✅ pull latest image"
docker pull choeunbin/phraiz:latest

echo "✅ run new container"
docker run -d \
  --name phraiz \
  --env-file .env \
  --network bridge \
  -p 80:8080 \
  choeunbin/phraiz:latest

echo "✅ deployment complete!"
docker ps

 

이렇게 쉘 스크립트를 작성하고,

chmod +x deploy.sh

이렇게 실행 권한 주면

 

앞으로 

./deploy.sh

이것만 입력해서 간단하게 배포할 수 잇다!