본문 바로가기
[스파르타코딩클럽]/Docker & CICD

Dockerfile

by 진진리 2024. 3. 18.
728x90

Dockerfile이란?

  • 앱을 컨테이너로 만들 때 이미지를 만드는 용도로 사용
  • Dockerfile을 작성하여 똑같은 앱 환경을 쉽게 만들고 그 과정을 자동화할 수 있음
  • 예시
# Dockerfile
FROM ubuntu:latest
MAINTAINER Your Name <your-email@example.com>
RUN apt-get update && apt-get install -y nginx
COPY index.html /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

 

  • FROM: 베이스 이미지를 선택
  • MAINTAINER: 이미지를 만든 사람의 정보
  • RUN: 이미지에 명령을 실행하여 파일을 추가하거나 삭제
  • COPY: 파일을 이미지에 복사
  • EXPOSE: 컨테이너가 노출할 포트를 설정
  • CMD: 컨테이너가 실행될 때 실행할 명령을 설정

 

Docker 이미지 생성

docker buildx build -t my-nginx:latest .
docker build -t my-nginx:latest . # 위 명령이 실행되지 않는 경우 실행
  • 생성된 Docker 이미지는 Docker 레지스트리를 사용하여 저장하고 공유할 수 있음

 

Dockerfile 예제

FROM python:3.11

RUN pip install pipenv

WORKDIR /app

ADD . /app/

RUN pipenv --python 3.11
RUN pipenv run pip install poetry
RUN pipenv sync
RUN pipenv run pip install certifi

ARG STAGE

RUN sh -c 'echo "STAGE=$STAGE" > .env'
RUN sh -c 'echo "PYTHONPATH=." >> .env'
RUN chmod +x ./scripts/run.sh
RUN chmod +x ./scripts/run-worker.sh

CMD ["./scripts/run.sh"]

 

# Dockerfile
FROM ubuntu:22.04
MAINTAINER your-name <your-email@example.com>
LABEL purpose=Web Server

# nginx 패키지 설치
RUN apt-get update && apt-get install -y nginx

# nginx 설정 파일 복사
COPY nginx.conf /etc/nginx/nginx.conf

# Nginx 실행
CMD ["nginx", "-g", "daemon off;"]

'[스파르타코딩클럽] > Docker & CICD' 카테고리의 다른 글

Docker volume  (0) 2024.03.19
Docker 모니터링&로깅  (0) 2024.03.19
Docker Compose  (1) 2024.03.19
Github Actions와 CI/CD  (0) 2024.03.18
CI/CD와 Docker  (0) 2024.03.18