У меня есть такой файл Docker:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
ADD reports /code/
RUN pip install -r requirements.txt
ADD . /code/
RUN ls -l /code/reports/report/manage.py # gives expected result
RUN ls -l /code/reports/build_static/ # gives expected result
RUN python /code/reports/report/manage.py build full_report.views.RenderView # does not work
Все отлично работает, кроме последней команды , которая запускает пакет python (django-bakery) через manage.py build
. Я не получаю никаких ошибок.
Эта команда должна выводить некоторые файлы внутри директории build_static в контейнере.
Если я ssh в контейнер и запускаю команду вручную, то она работает . Я вставил полный путь с /code/
, чтобы убедиться, что они совпадают, и заранее создал все необходимые каталоги.
Вот как я строю контейнер:
docker-compose run django /bin/bash
Это мой docker-compose:
version: '3'
services:
django:
build: .
volumes:
- .:/code
ports:
- "8000:8000"
Интересно, как это работает, когда я запускаю команду вручную через bash внутри контейнера, но не работаю с командой в файле docker.
Спасибо!
Обновление (кажется, что файлы созданы, но если я проверю их, их там нет):
Step 12/12 : RUN ls -l /code/reports/build_static/
---> Running in e294563d26d5
total 11080
-rw-r--r-- 1 root root 11339956 Apr 30 10:53 index.html
drwxr-xr-x 7 root root 4096 Apr 30 10:53 static
Removing intermediate container e294563d26d5
---> b8e72da8ee5c
Successfully built b8e72da8ee5c
Successfully tagged image_django:latest
WARNING: Image for service django was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
root@7483853ecc45:/code# ls -l reports/build_static/
total 0