## 패키지 목록 업데이트
sudo apt update
## Docker 설치
sudo apt install -y docker.io
## Docker 설치 확인
docker --version
## Docker 서비스 시작 및 자동 실행 설정
sudo systemctl start docker
sudo systemctl enable docker
## sudo(관리자 권한) 없이도 사용하도록 설정
sudo usermod -aG docker ubuntu
# Docker 공식 GPG 키 추가
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Docker apt 저장소 추가
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 패키지 목록 업데이트
sudo apt update
# Docker Compose tjfcl
sudo apt install -y docker-compose-plugin
# Docker compose 설치 확인
docker compose version
version: "3.8"
services:
app:
image: capaldi/my-app:latest
container_name: my-app
ports:
- "8080:8080"
env_file:
- .env
restart: always
redis:
image: redis
restart: always
docker rm {containerId 및 이름}
- name: Deploy to EC2
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
docker pull ${{ secrets.DOCKER_USERNAME }}/my-app:latest
docker stop my-app || true
docker rm my-app || true
docker run -d --name my-app -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/my-app:latest
- name: Deploy to EC2
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
docker pull ${{ secrets.DOCKER_USERNAME }}/my-app:latest
cd /home/ubuntu
docker compose down
docker compose up -d
삽질
ubuntu 서버에 docke만 설치된 경우 docker compse 명령어 없음
docker compose 플러그인을 설치해 사용해야함


