【发布时间】:2018-10-29 18:15:01
【问题描述】:
docker-compose up --build 使用云 docker-machine 变得非常慢,一小时后我有一个找不到 entrypoint.sh 文件的错误。
在本地 Mac docker-machine 上,相同的配置工作正常。
我的 docker 文件
FROM python:3.5.2
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD app/ /code/
ADD static/ /code/
ADD entrypoint.sh /code/
我的 docker compose
version: '3.7'
services:
web:
build: .
command: gunicorn --bind 0.0.0.0:8000 app.wsgi
volumes:
- .:/code
entrypoint: ./entrypoint.sh
expose:
- "80"
nginx:
image: nginx:1.15.5
restart: always
ports:
- "80:80"
volumes:
- ./static:/static
depends_on:
- web
我运行的命令
cd myprojectfolder
eval $(docker-machine env [my-cloud-machine-name])
docker-compose -f docker-compose.yml -f envs/prd/prd.yml up --build -d
一小时后出现错误(我的项目文件只有 40mb)
错误:对于 web 无法启动服务 web:OCI 运行时创建失败:container_linux.go:348:启动容器进程导致“exec:\”./entrypoint.sh\“:stat ./entrypoint.sh:没有这样的文件或目录” : 未知
错误:compose.cli.main.main:启动项目时遇到错误。
请帮我
谢谢
我按照此配置的建议进行了更改,但没有任何更改。我被困在这个问题上:
docker.api.build._set_auth_headers: 发送授权配置()
这是我的新配置
码头工人撰写
version: '3.7'
services:
web:
command: gunicorn --bind 0.0.0.0:8000 app.wsgi
entrypoint: ./entrypoint.sh
expose:
- "80"
nginx:
image: nginx:1.15.5
restart: always
ports:
- "80:80"
volumes:
- ./static:/static
depends_on:
- web
我的 prd.yml 文件
version: '3.7'
services:
web:
build:
context: .
dockerfile: ./envs/prd/Dockerfile
nginx:
volumes:
- ./envs/prd/nginx/nginx.conf /etc/nginx/nginx.conf
我的 prd dockerfile
FROM python:3.5.2
ENV PYTHONUNBUFFERED 1
WORKDIR /
ADD requirements.txt .
RUN pip install -r requirements.txt
ADD app/ ./app
ADD static/ ./static
ADD envs/prd/settings.py /app/settings.py
ADD entrypoint.sh .
我的 .dockerignore
.DS_Store
.dockerignore
.git/
.gitignore
README.rst
README.md
*.pyc
__pycache__
.idea/*
【问题讨论】:
-
您的卷正在安装在 docker 机器主机中。
volumes: - .:/code您需要使用docker-machine mount在 docker-machine 主机中挂载本地文件夹,或者在没有卷的情况下运行映像。 -
谢谢,您能否更好地解释一下我需要如何更改 dockerfile 一个 docker compose 文件以便在没有卷的情况下使用?我是初学者对不起!谢谢你
-
删除
volumes: - .:/code -
很抱歉,没有任何改变。从 Web 容器中删除卷。当我运行时: docker-compose --verbose -f docker-compose.yml -f envs/prd/prd.yml up --build -d 我卡住了
标签: docker docker-compose digital-ocean docker-machine