我试图将FIG(http://www.fig.sh/)用于django应用。我无法从转储中重新创建数据库,我尝试:
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
答案 0 :(得分:0)
运行时
fig run db pg_restore -d DBNAME < backup.sql
postgresd没有运行。您已使用pg_restore命令替换了守护程序的启动。
我建议做这样的事情:
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命令时,你的数据库应该准备好了