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 |