본문 바로가기
인프라

Github Action & 도커 허브에 이미지 전송

by 스티브 십잡스 2024. 5. 1.
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-compose, FastAPI & MySQL  (0) 2024.04.24
Docker, MySQL with 파이썬  (0) 2024.04.24
Docker, FastAPI  (0) 2024.03.24
클라우드 개발 서버와 동일한 설정의 운영 서버 구축  (0) 2024.03.10