相关疑难解决方法(0)

在"docker-compose run"命令(Django的collectstatic)之后,卷更改不会持久

我有一个使用Docker Compose创建的Django环境,我正在尝试manage.py collectstatic将我的站点的静态文件复制到容器中的目录.这个目录(/ usr/src/app/static)也是一个Docker Volume.

在构建我的docker containers(docker-compose build)之后,我运行docker-compose run web python manage.py collectstatic,它按预期工作,但我的Web服务器(Nginx)没有找到文件,我运行时也没有任何文件docker-compose run web ls -la /usr/src/app/static.

关于我做错了什么的任何想法?

(注意:manage.py collectstatic我的Dockerfile中没有,因为我的设置需要加载我的".env"文件,我没有看到在Dockerfile中加载它的方法.在任何一种情况下,我想知道为什么Docker Compose不起作用,因为我期待它.)

这是我的配置文件:

## docker-compose.yml:
web:
  restart: always
  build: .
  expose:
    - "8000"
  links:
    - postgres:postgres
  volumes:
    - /usr/src/app/static
    - .:/code
  env_file: .env
  command: /usr/local/bin/gunicorn myapp.wsgi:application -w 2 -b :8000 --reload

nginx:
  restart: always
  build: ./config/nginx
  ports:
    - "80:80"
  volumes:
    - /www/static
  volumes_from:
    - web
  links:
    - web:web

postgres:
  restart: …
Run Code Online (Sandbox Code Playgroud)

django docker docker-compose

4
推荐指数
1
解决办法
2231
查看次数

Docker 不持久化 postgres 卷 [django]

这里有很多关于我经历过的类似问题的问题,比如这个这个这个这个非常相似,但那里的解决方案都没有解决我的问题。请不要关闭这个问题。

问题:

我在 docker 上使用 nginx 和 postgres 运行 django。机密信息存储在 .env 文件中。我的 postgres 数据没有持久化docker-compose up/startdocker-compose down/stop/restart

这是我的docker-compose文件:

version: '3.7'

services:
  web:
    build: ./app
    command: gunicorn umngane_project.wsgi:application --bind 0.0.0.0:8000
    volumes:
      - ./app/:/usr/src/app/
    expose:
      - 8000
    environment:
      - SECRET_KEY=${SECRET}
      - SQL_ENGINE=django.db.backends.postgresql
      - SQL_DATABASE=postgres
      - SQL_USER=${POSTGRESQLUSER}
      - SQL_PASSWORD=${POSTGRESQLPASSWORD}
      - SQL_HOST=db
      - SQL_PORT=5432
      - SU_NAME=${SU_NAME}
      - SU_EMAIL=${SU_EMAIL}
      - SU_PASSWORD=${SU_PASSWORD}
    depends_on:
      - db
  db:
    image: postgres:11.2-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
  nginx:
    build: …
Run Code Online (Sandbox Code Playgroud)

django postgresql docker docker-compose docker-volume

3
推荐指数
1
解决办法
1096
查看次数