1

Django アプリにFIG ( http://www.fig.sh/ )を使用しようとしています。ダンプからデータベースを再作成できません。

fig run db pg_restore -d DBNAME < backup.sql

そして得る:

socket.error: [Errno 104] ピアによって接続がリセットされました

しかし、これを実行します(データベース内のテーブルはまだ表示されません):

fig run db pg_restore < backup.sql

これはdockerfileです:

FROM python:3.4
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
ADD backup.sql /code/
RUN pip install -r requirements.txt
RUN pg_restore -d postgres  backup.sql
ADD . /code/

そして fig.yml:

db:
  image: postgres
  ports:
    - 5432  
web:
  build: .
  command: python manage.py runserver 0.0.0.0:8000
  volumes:
    - .:/code
  ports:
    - "8000:8000"
  links:
    - db
4

1 に答える 1

0

走るとき

fig run db pg_restore -d DBNAME < backup.sql

postgresd が実行されていません。デーモンの起動を pg_restore コマンドに置き換えました。

次のようなことをお勧めします。

  1. backup.sql を dockerfiles/db/backup.sql に移動します
  2. dockerfiles/db/Dockerfile を作成します
  3. fig.yml を変更して、代わりに db に build を使用します

Dockerfile

FROM postgres
ADD . /files
WORKDIR /files
RUN /etc/init.d/postgresql start && \
    pg_restore -d DBNAME < backup.sql && \
    /etc/init.d/postgresql stop

fig.yml

db:
    build: dockerfiles/db

fig コマンドを実行すると、データベースの準備が整います。

于 2014-12-11T01:21:13.190 に答える