上下文
我试图使用docker-compose在docker开发环境中运行我的Django应用程序和Postgres数据库(这是我第一次使用Docker).我希望将我的应用程序与自定义角色和数据库teddycrepineau一起使用(而不是使用默认的postgres用户和数据库).
目标
我的目标是通过django restapi部署一个由前端和后端驱动的web应用程序,整个在docker中运行.
系统/版本
我得到什么错误
当docker-compose up使用我的自定义角色和数据库运行时,我收到以下错误django.db.utils.OperationalError: FATAL: role "teddycrepineau" does not exist.当使用默认角色运行相同的命令时,db postgresDjango能够正常启动.
我的理解是运行docker-compose up会创建角色,db作为环境变量传递.
到目前为止
我尝试过的东西我在这个网站上看到了多个威胁,GitHub和docker:
泊坞窗,compose.yml
version: '3'
volumes:
postgres_data: {}
services:
postgres:
image: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
env_file: .env
ports:
- "5432"
django:
build:
context: teddycrepineau-backend
dockerfile: teddycrepineau-root/Dockerfile
command: ./teddycrepineau-backend/teddycrepineau-root/start.sh
env_file: .env
volumes:
- .:/teddycrepineau-backend …Run Code Online (Sandbox Code Playgroud) 我有以下 docker-compose 文件:
version: '3'
services:
web:
build:
context: ./django_httpd_mod_wsgi
ports:
- "8000:80"
db:
build:
context: ./postgresql
volumes:
- db-data:/var/lib/postgres/data
volumes:
db-data:
Run Code Online (Sandbox Code Playgroud)
我正在使用 archlinux 构建 psotgresql 映像:
以下是我的 postgresql Dockerfile:
FROM archlinux/base
RUN yes | pacman -S postgresql
RUN mkdir /run/postgresql/
RUN chown -R postgres:postgres /run/postgresql/
USER postgres
RUN initdb -D /var/lib/postgres/data
RUN psql -c 'CREATE DATABASE btgapp;'
RUN psql -c "CREATE USER simha WITH PASSWORD 'krishna';"
RUN psql -c 'GRANT ALL PRIVILEGES ON DATABASE btgapp TO simha;'
CMD ["/usr/bin/postgres","-D","/var/lib/postgres/data"] …Run Code Online (Sandbox Code Playgroud)