簡體   English   中英

為什么帶有Docker的Django服務器在PostgreSQL中沒有數據庫的情況下運行?

[英]Why Django server with Docker is running without database in postgresql?

我想知道為什么我的服務器正在運行,為什么它看不到另一個數據庫。 要使用psql\\l

                                    List of databases
    Name     |    Owner    | Encoding |   Collate   |    Ctype    |   Access privileges   
-------------+-------------+----------+-------------+-------------+-----------------------
 aso         | postgres    | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0   | postgres    | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
             |             |          |             |             | postgres=CTc/postgres
 template1   | postgres    | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
             |             |          |             |             | postgres=CTc/postgres
 owner       | owner       | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
(4 rows)

我的Django設定:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

如您所見,沒有名為postgres數據庫,但是服務器運行正常(保存數據等)。 另一方面,當我使用時:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'aso',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

我得到django.db.utils.OperationalError: FATAL: database "aso" does not exist有人可以向我解釋一下嗎?

編輯 @Adaikalaraj建議在docker中創建數據庫。 我正在嘗試以這種方式:

init.sql

CREATE USER postgres;
CREATE DATABASE aso;
GRANT ALL PRIVILEGES ON DATABASE aso TO postgres;

我更新的Dockerfile

FROM python:3.6.1
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip3 install -r requirements.txt
ADD . /code/
FROM library/postgres
ADD init.sql /docker-entrypoint-initdb.d/

不幸的是我得到:

db_1   | LOG:  database system was shut down at 2017-07-05 14:02:41 UTC
web_1  | /usr/local/bin/docker-entrypoint.sh: line 145: exec: python3: not found
db_1   | LOG:  MultiXact member wraparound protections are now enabled
db_1   | LOG:  autovacuum launcher started
db_1   | LOG:  database system is ready to accept connections
dockerpri_web_1 exited with code 127

在這里'HOST': 'db'在docker內部運行,似乎您正在檢查系統中的psql 您可以在HOST : 127.0.0.1提供IP地址(例如:127.0.0.1),也可以在aso內部運行的postgres中創建db aso

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM