본문 바로가기
Docker/Docker

Dockerfile 작성

by 누워있는말티즈 2023. 9. 14.

개요

본 문서는 Dockerfile, docker-compose.yml, 도커 실행 명령 관련하여

  • 자주 사용하는
  • 특정 기능을 위해 필요한
  • 자주 안쓰지만 필요한

기능을 위한 명령어 등을 정리한 문서이다.

Dockerfile

uvicorn으로 fastapi 서버를 돌리는 경우

FROM python:3.9
WORKDIR /app/
EXPOSE 9000

COPY ./app.py /app/
COPY ./utils/file1.py /app/utils/
COPY ./utils/file1.py /app/utils/
COPY ./router/router1.py /app/router/
COPY ./requirements.txt /app/

RUN pip3 install -r requirements.txt

CMD uvicorn app:app --host=0.0.0.0 --reload --port=9000

일반 python file 실행하는 경우

FROM python:3.9
WORKDIR /app/
EXPOSE 9000

COPY ./app.py /app/
COPY ./utils/file1.py /app/utils/
COPY ./utils/file1.py /app/utils/
COPY ./requirements.txt /app/

RUN pip3 install -r requirements.txt

CMD ["python3", "-u", "app.py"]

다중 컨테이너 사용 시 다른 컨테이너 올라온 후에 시동하기 위해 wait 기능이 필요한 경우 삽입

ENV WAIT_VERSION 2.7.2
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/$WAIT_VERSION/wait /wait
RUN chmod +x /wait

로컬 파일과 도커 컨테이너 내부 파일 연결(로컬 파일 변경으로 컨테이너 내부 설정 파일 수정)

version: '2.1'

services:
  mongodb:
    image: mongo:4.0
    container_name: local_service_db
    restart: always
    expose:
      - 27017
    ports:
      - 27017:27017
    tty: true 
    volumes:
      - ./mongodb:/data/db
    environment:
      - MONGO_INITDB_ROOT_USERNAME=****
      - MONGO_INITDB_ROOT_PASSWORD=******
      - MONGO_INITDB_DATABASE=local_service_db

  nginx_proxy_ypass:
    image: nginx:1.21.5-alpine
    container_name: nginx_proxy_ypass
    ports:
      - 80:80
    volumes:
      - ./proxy/nginx.conf:/etc/nginx/nginx.conf
 
    networks:
      - drimaes_net
반응형

'Docker > Docker' 카테고리의 다른 글

도커 이미지 tar 파일 생성  (0) 2024.02.08
Docker Hub 사용  (0) 2024.02.07
Docker Container 내에서 내/외부 IP 사용  (0) 2023.09.26
Docker Compose 구성  (0) 2023.09.15

댓글