2023년 12월 9일 토요일

django 관련 강의를 쫓아가다가 만난 난관중 1개


Dockerfile과 docker-compose.yml 파일

docker-compose.yml에 개발중이라는 dev변수에 true를 설정하고

빌드를 docker build . 이명령어로 하는데 끊임없이 내가 원하는내용으로 안된다.

그래서 얼마전 설치한 cursor 라는 코드편집기에 물어보았더니

엄청 상세히 대답해준다. 

docker-compose.yml 파일 설정 사용하여 Dockerfile 빌 docker-compose up --build 또 docker-compose build 명 사용 합니다.


결론은 명령창에서 docker build . 이 명령어가 아닌 docker-compose build 명령어를 사용해야 의도한대로 된다는 점이다.


 FROM python:3.9-alpine3.13

LABEL maintainer="sharpscar <sharpscar@gamil.com>"

ENV PYTHONUNBUFFERED 1

COPY ./requirements.txt /tmp/requirements.txt
COPY ./requirements.dev.txt /tmp/requirements.dev.txt
COPY ./app /app
WORKDIR /app
EXPOSE 8000

ARG DEV=false
RUN echo "$DEV"
RUN python -m venv /py && \
    /py/bin/pip install --upgrade pip && \
    /py/bin/pip install -r /tmp/requirements.txt && \
    if [ $DEV = "true" ]; \
        then /py/bin/pip install -r /tmp/requirements.dev.txt ; \
    fi && \
    rm -rf /tmp && \
    adduser \
        --disabled-password \
        --no-create-home \
        django-user

ENV PATH="/py/bin:$PATH"

USER django-user

================================================================================
docker-compose.yml

version: "3.9"

services:
  app:
    build:
      context: .
      args:
        - DEV=true
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app    
    command: >
      sh -c "python manage.py runserver 0.0.0.0:8000"

댓글 없음: