【发布时间】:2019-07-26 19:30:43
【问题描述】:
我正在使用 docker-compose 运行三个容器。其中两个依赖于数据库,所以我使用wait-for-it.sh 来确保它们在数据库监听之前不会运行。
这是my docker-compose.yml 文件:
web:
build: ./docker/web
command: ["./wait-for-it.sh", "db:5432", "--", "python", "manage.py", "runserver", "0.0.0.0:8080"]
ports:
- "8080:8080"
depends_on:
- db
- spider
links:
- db
当我运行docker-compose up 命令时出现错误:
web_1 | wait-for-it.sh: waiting 15 seconds for db:5432
web_1 | wait-for-it.sh: db:5432 is available after 0 seconds
web_1 | python: can't open file 'manage.py': [Errno 2] No such file or directory
当我添加音量.:/src 时,找到了manage.py,但没有找到wait-for-it.sh:
ERROR: for web Cannot start service web: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"./wait-for-it.sh\": stat ./wait-for-it.sh: no such file or directory": unknown
我将wait-for-it.sh 文件添加到web 服务的Dockerfile 所在的目录。
知道我怎样才能完成这项工作吗?
编辑 这是 docker-compose 中使用的 Dockerfile:
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /src
COPY . /src
WORKDIR /src
RUN pip install -r requirements.txt
【问题讨论】:
-
您可以在问题中包含您的
Dockerfile吗?COPYing 你的应用程序代码正确吗? -
@DavidMaze 我包含了 Dockerfile。很抱歉没有早点做。
标签: bash docker docker-compose