name: action name
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Login to Dockerhub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: actions/checkout@v3
- run: docker build -t ${{ secrets.DOCKER_USERNAME }}/server-test -f ./server/Dockerfile.test ./server
- run: docker run -e CI=true -e ENVIRONMENT=TEST ${{ secrets.DOCKER_USERNAME }}/server-test
- run: docker build -t ${{ secrets.DOCKER_USERNAME }}/docker-server ./server
- run: docker build -t ${{ secrets.DOCKER_USERNAME }}/docker-mysql ./mysql
- run: docker push ${{ secrets.DOCKER_USERNAME }}/docker-server
- run: docker push ${{ secrets.DOCKER_USERNAME }}/docker-mysql
- docker run -e KEY=VALUE
- env 설정
- 여러 값을 설정하려면 여러 번 선언
- .env 파일을 두는 것과 동일
./server/Dockerfile.test
FROM python:3.12
WORKDIR /src
COPY ./requirements.txt /src/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /src/requirements.txt
COPY ./app /src/app
COPY ./logs /src/logs
COPY ./test /src/test
COPY ./.env.test /src/.env.test
EXPOSE 8000
CMD ["pytest"]
- 기존의 도커 파일과 동일하게 가져가지만, 실행하는 명령어를 테스트 코드 동작으로 변경
위의 작성한 deploy.yaml 파일로는 빌드된 이미지를 도커 허브에 보내는 것까지 입니다.
서버에서 도커 허브에 올려진 이미지로 배포하려면 아래의 docker-compose.yaml 파일을 생성한 후
docker-compose up -d 명령어를 실행시키면 됩니다.
version: '3'
services:
backend:
image: docker id/docker-server
ports:
- '8000:8000'
environment:
ENVIRONMENT: PROD
depends_on:
- mysql
mysql:
image: docker id/docker-mysql
restart: unless-stopped
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: 1234
MYSQL_DATABASE: db name
'인프라' 카테고리의 다른 글
Git, release 브랜치 관리하기 (0) | 2024.05.16 |
---|---|
Docker, MySQL with 파이썬 (0) | 2024.04.24 |
클라우드 개발 서버와 동일한 설정의 운영 서버 구축 (0) | 2024.03.10 |