docker-compose无法启动服务:" exec:\" python3 \":找不到可执行文件

时间:2018-02-19 22:13:12

标签: python django docker docker-compose

(我对docker,fwiw

没有太多经验

我有一个django appication I' m容器化。目前我跑的时候 docker-compose up服务启动redis,但api退出时出现错误:ERROR: for api Cannot start service api: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"python3\": executable file not found in $PATH": unknown

#docker-compose.yaml

version: '3'
services:
  redis:
      image: redis
      ports:
        - 6379
  api:
      build:
        context: ../backend/
        dockerfile: ../backend/Dockerfile
      env_file: .env
      volumes:
          - ../backend:/code/
      ports:
        - "8001:8001"
     depends_on:
        - redis

#../backend/Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
ADD . /code/
WORKDIR /code/
RUN pip install -r requirements.txt
CMD python manage.py runserver

#./.env 

DJANGO_SETTINGS_MODULE=backend.settings.dev
DJANGO_SECRET_KEY=<redacted>
SENTRY_URL=<redacted>

我还基于其他问题尝试使用CMDRUN两种不同的参数类型,即在现有的shell中没有,但输出没有&#39;改变了。

我还应该承认,我可能无法重新启动实际捕获docker-compose.yamlDockerfile的更新。我的工作流程为$ docker-compose down,后跟$ docker-compose up

编辑:

@ henrik-andersson指出了我正确的方向。错误的直接原因是图像本身没有构建,因此可执行文件python不存在。我需要运行的命令是docker-compose up --build

1 个答案:

答案 0 :(得分:0)

docker-compose up --build显示图像未构建。通过将docker-compose.yaml文件移动到父目录s.t来解决此问题。可以正确访问每项服务的Dockerfile