【发布时间】:2022-01-06 17:03:10
【问题描述】:
我想运行 docker-compose。 在运行 react 和 django 应用程序期间,docker-compose 返回以下错误:
(base) dominik@Precision:~/PycharmProjects/humanet-docker$ ls
api docker-compose.prod.yml docker-compose.yml front nginx
(base) dominik@Precision:~/PycharmProjects/humanet-docker$ docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------------------------------------------------------
a7c8de30f648_humanet-docker_api_1 python manage.py runserver ... Exit 127
humanet-docker_db_1 docker-entrypoint.sh postgres Up 5432/tcp
humanet-docker_front_1 docker-entrypoint.sh yarn ... Up 0.0.0.0:3000->3000/tcp,:::3000->3000/tcp
humanet-docker_nginx_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:443->443/tcp,:::443->443/tcp, 0.0.0.0:80->80/tcp,:::80->80/tcp
humanet-docker_pgadmin_1 /entrypoint.sh Up 443/tcp, 0.0.0.0:5050->80/tcp,:::5050->80/tcp
(base) dominik@Precision:~/PycharmProjects/humanet-docker$ docker-compose up
humanet-docker_pgadmin_1 is up-to-date
humanet-docker_front_1 is up-to-date
Starting a7c8de30f648_humanet-docker_api_1 ...
humanet-docker_nginx_1 is up-to-date
Starting a7c8de30f648_humanet-docker_api_1 ... error
ERROR: for a7c8de30f648_humanet-docker_api_1 Cannot start service api: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "python manage.py runserver 0.0.0.0:8000": executable file not found in $PATH: unknown
ERROR: for api Cannot start service api: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "python manage.py runserver 0.0.0.0:8000": executable file not found in $PATH: unknown
ERROR: Encountered errors while bringing up the project.
(base) dominik@Precision:~/PycharmProjects/humanet-docker$
在我的 docker 的 docker-compose.yml 文件下方
version: "3.3"
services:
front:
build: ./front
working_dir: /home/dominik/node
env_file: ./front/.env.dist
volumes:
- ./front:/home/dominik/node
- /private/etc/ssl:/etc/ssl
ports:
- 3000:3000
restart: always
tty: true
api:
build: ./api
working_dir: /home/dominik/python
command: pip install -r requirements.txt && python manage.py runserver 0.0.0.0:8000
volumes:
- ./api:/home/dominik/python
- /private/etc/ssl:/etc/ssl
ports:
- 4000:4000
- 8445:8445
restart: always
tty: true
nginx:
build: ./nginx
volumes:
- /private/etc/ssl:/etc/ssl
ports:
- 80:80
- 443:443
working_dir: /home/dominik/node
restart: always
tty: true
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: xxx
POSTGRES_USER: xxx
POSTGRES_DB: xxx
POSTGRES_HOST_AUTH_METHOD: trust
PGDATA: /data/db
volumes:
- /home/dominik/data/humanet-db:/data/db
pgadmin:
image: dpage/pgadmin4
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: xxx
PGADMIN_DEFAULT_PASSWORD: xxx
ports:
- 5050:80
volumes:
- /home/dominik/data/humanet-pgadmin:/var/lib/pgadmin
- /home/dominik/data/humanet-pgadmin/servers.json:/pgadmin4/servers.json
这是 docker 第一次返回我的消息: 无法启动服务 api:OCI 运行时创建失败:container_linux.go:380:启动容器进程导致:exec:“python manage.py runserver 0.0.0.0:8000”:$PATH 中找不到可执行文件:未知
错误:对于 api 无法启动服务 api:OCI 运行时创建失败:container_linux.go:380:启动容器进程导致:exec:“python manage.py runserver 0.0.0.0:8000”:在 $PATH 中找不到可执行文件: 未知 错误:启动项目时遇到错误。
如何处理?
【问题讨论】:
-
你的镜像的 Dockerfile 中有什么? (它是否有一个忽略
command:覆盖的ENTRYPOINT;你是否需要一个command:覆盖;为什么每次启动容器时都需要重新运行pip install?)
标签: python django docker nginx docker-compose