【发布时间】:2020-03-31 06:07:22
【问题描述】:
但我遇到了问题。
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 命令,但是失败了。
我认为添加写入空间的命令会导致问题。
我该如何解决?
【问题讨论】:
-
尝试从你的 DockerFile 运行 runserver 命令作为入口点
-
@Kendoka 那我可以把 Compose.yml 中的命令取出来吗?
-
如果在 DockerFile 中将其作为 ENTRYPOINT 运行,则可以在 compose 文件中取出命令。
-
您需要删除 COPY 。 /code/ 来自您的 dockerfile,因为它在 compose 中定义
标签: python django docker docker-compose