@V-ampre

Почему не docker не запускает команду?

Я хочу использовать pipenv для django проекта:
# Dockerfile

FROM python:3.8-slim-buster

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED=1

WORKDIR /app

RUN apt-get update && apt-get -y install libpq-dev gcc python3-dev musl-dev netcat
 
COPY . /app

RUN pip install pip --upgrade
RUN pip install pipenv
RUN pipenv lock --keep-outdated --requirements > requirements.txt
RUN sh -c 'if [ "$MODE" = "dev" ]; then pipenv lock --dev --requirements >> requirements.txt; fi'
RUN pip install -r requirements.txt

# run entrypoint.sh
RUN chmod a+x ./shell_scripts/entrypoint.sh

ENTRYPOINT ["/app/shell_scripts/entrypoint.sh"]


Значение MODE я передаю через docker-compose:
# docker-compose.yml
version: "3"

services:
    app:
        container_name: app
        build: 
            context: .
            dockerfile: Dockerfile
            args:
                MODE: dev
        env_file: .env
        command: python manage.py runserver 0.0.0.0:8000
        ports:
            - 8000:8000
        depends_on:
            - db
    db:
        image: postgres:12.0-alpine
        volumes:
            - postgres_data:/var/lib/postgresql/data/
        env_file:
            - .env
volumes:
    postgres_data:


В итоге зависимостей для среды разработки не устанавливается, то есть не выполняется вот это команда
pipenv lock --dev --requirements >> requirements.txt
, в чем здесь моя ошибка?
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
yarkov
@yarkov
Помог ответ? Отметь решением.
После FROM попробуйте добавить строчку ARG MODE
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы