개요
본 문서는 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 |
댓글