Dockerfile运行python命令不起作用

克劳迪(Claudiu Creanga)

我有一个像这样的dockerfile:

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

这是我的码头工人组成:

version: '3'

services:
  django:
    build: .
    volumes:
      - .:/code
    ports:
      - "8000:8000"

我想知道当我通过容器内的bash手动运行命令但不使用dockerfile中的命令时它如何工作。

谢谢!

更新(似乎文件已创建,但是如果我检查它们不存在):

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
fly2matrix

尝试执行以下步骤,让我知道输出:

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  
RUN ls -l /code/reports/build_static/  # should give you expected list of files

给我最后一步的输出。我会根据输出结果帮助您。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章