下面是我的docker-compose.yml文件。它与我的docker-compose.yml文件有关。我想。就像我说的,应用程序在本地构建,但当我运行 "docker-compose up -d "在我的DigitalOcean Droplet,我得到这个错误。
ERROR: Couldn't find env file: /root/.env
以下是我的docker-compose.yml文件。
version: '2'
services:
postgres:
image: 'postgres:9.5'
container_name: postgress
env_file:
- '.env'
volumes:
- 'postgres:/var/lib/postgresql/data'
ports:
- '5432:5432'
networks:
- db_nw
redis:
image: 'redis:3.0-alpine'
container_name: redis
command: redis-server --requirepass pass123456word
volumes:
- 'redis:/var/lib/redis/data'
ports:
- '6379:6379'
website:
restart: always
build: .
container_name: website
command: >
gunicorn -c "python:config.gunicorn" --reload "app.app:create_app()"
env_file:
- '.env'
volumes:
- '.:/app'
ports:
- 8000:8000
expose:
- 8000
networks:
- db_nw
- web_nw
depends_on:
- postgres
links:
- celery
- redis
- postgres
celery:
build: .
container_name: celery
command: celery worker -B -l info -A app.blueprints.contact.tasks
env_file:
- '.env'
volumes:
- '.:/app'
nginx:
restart: always
build: ./nginx
image: 'nginx:1.13'
container_name: nginx
volumes:
- /www/static
- .:/app
ports:
- 80:80
networks:
- web_nw
links:
- website
depends_on:
- website
networks:
db_nw:
driver: bridge
web_nw:
driver: bridge
volumes:
postgres:
redis:
我的docker文件
FROM python:3.7.5-slim-buster
RUN apt-get update \
&& apt-get install -qq -y \
build-essential libpq-dev --no-install-recommends
ENV INSTALL_PATH /app
RUN mkdir -p $INSTALL_PATH
WORKDIR $INSTALL_PATH
COPY requirements.txt requirements.txt
RUN pip install --upgrade pip -r requirements.txt
COPY . .
RUN pip install --editable .
CMD gunicorn -c "python:config.gunicorn" "app.app:create_app()"
是我的卷在我的docker-compose.yml文件有什么问题吗? 或者我做了一些奇怪的事情,在我的Dockerfile与ENV,其硬编码到本地机器,而不是 "根 "目录上DigitalOcean?
我是新的托管docker图像,所以这是我第一次去这样的东西。谢谢
当你访问一个Droplet,你一般运行为 root
.
你似乎复制了 docker-compose.yml
正确地复制到Droplet上,但您没有复制该文件。.env
文件,它所依赖的文件到Droplet的 /root/.env
.
如果你复制了 .env
归档 /root/.env
在Droplet上,它应该可以工作。