在$ PATH中找不到Docker撰写可执行文件”:未知

逆戟鲸

但我有一个问题。

Dockerfile:

FROM python:3
ENV PYTHONUNBUFFERED 0
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

compose.yml:

version: '3'

services:
  db:
    image: postgres
    volumes:
      - ./docker/data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=sampledb
      - POSTGRES_USER=sampleuser
      - POSTGRES_PASSWORD=samplesecret
      - POSTGRES_INITDB_ARGS=--encoding=UTF-8

  django:
    build: .
    environment:
      - DJANGO_DEBUG=True
      - DJANGO_DB_HOST=db
      - DJANGO_DB_PORT=5432
      - DJANGO_DB_NAME=sampledb
      - DJANGO_DB_USERNAME=sampleuser
      - DJANGO_DB_PASSWORD=samplesecret
      - DJANGO_SECRET_KEY=dev_secret_key
    ports:
      - "8000:8000"
    command:
      - python3 manage.py runserver
    volumes:
      - .:/code

错误:

ERROR: for django  Cannot start service django: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"python3 manage.py runserver\": executable file not found in $PATH": unknown

起初,我认为Python Manage是错误的。

但是我尝试了命令ls,令我惊讶的是,我成功了。

然后我尝试了ls -al命令,但是失败了。

我认为增加写空间命令会引起问题。

我该如何解决?

大卫·迷兹

当您在docker-compose.yml文件中使用列表语法时,每个项目都被当作一个单词。您正在运行相当于

'python3 manage.py runserver'

您可以自己将其分解为单独的单词

command:
  - python3
  - manage.py
  - runserver

或者让Docker Compose为您做

command: python3 manage.py runserver

通常,此类映像的固定属性应在Dockerfile中指定,而不是在中指定docker-compose.yml每次运行该映像时,您都将要运行相同的命令,并且您将要运行映像中内置的代码。有两种语法,具有相同的基本区别:

# Explicitly write out the words
CMD ["python3", "manage.py", "runserver"]

# Docker wraps in sh -c '...' which splits words for you
CMD python3 manage.py runserver

使用图像中内置的代码并在其中定义了合理的默认命令,您可以文件中删除volumes:command:docker-compose.yml

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

启动容器过程导致“ exec:> \“ exec \”:在$ PATH中找不到可执行文件”:未知

exec:在$ PATH中找不到可执行文件

$ PATH中找不到Unix可执行文件

docker-exec失败:“ cd”:在$ PATH中找不到可执行文件

exec:“ com.docker.cli”:在$ PATH中找不到可执行文件

Docker --env文件-在$ PATH中找不到可执行文件

码头工人撰写oci运行时错误,在$ PATH中找不到可执行文件

在$ PATH中找不到可执行文件

Docker --mount抛出:$ PATH中找不到可执行文件”

Docker,\“ ping \”:在$ PATH中找不到可执行文件“:未知

在$ PATH Dockerfile中找不到可执行文件

exec:“ docker-runc”:在$ PATH中找不到可执行文件:未知

来自Angular4应用的Docker容器:“ -p”:在$ PATH中找不到可执行文件

“ sqlplus”:使用docker exec运行命令时,在$ PATH中找不到可执行文件

在$ PATH中找不到Docker Elasticsearch 1.7可执行文件”

尝试详细运行docker容器或docker exec时,在$ PATH中找不到错误可执行文件

找不到Docker映像中的可执行文件

运行docker容器时出错:启动容器过程导致“ exec:\” python \”:在$ PATH中找不到可执行文件”:未知

“ docker-containerd-shim”:在$ PATH中找不到可执行文件:未知

Docker容器构建失败:“ exec:\” flask \”:在$ PATH中找不到可执行文件”:未知

docker本地注册表“ exec:\“ htpasswd \”:在$ PATH中找不到可执行文件”

使用AWS Batch / ECS时在PATH中找不到Docker可执行文件

exec:“ php-fpm”:在$ PATH中找不到可执行文件:未知

Ubuntu在PATH中找不到可执行文件

nginx:在 $PATH 中找不到可执行文件”:未知

在 $PATH 中找不到可执行文件:未知错误消息

如何解决来自 docker 守护进程的错误响应 - 在 $PATH 中找不到可执行文件:未知

Docker 的“在 $PATH 中找不到可执行文件:未知”试图运行“cd”

在 $PATH 中找不到可执行文件:未知