我正试图找到一种很好的方法,用简单应用程序的初始数据填充数据库。我正在使用来自realpython.com的教程作为起点。然后,在创建数据库以添加单个条目之后,我运行一个简单的python脚本,但是当我这样做时,数据会被多次添加,尽管我只调用了一次脚本。结果
人口脚本(test.py):
from app import db
from models import *
t = Post("Hello 3")
db.session.add(t)
db.session.commit() 编辑:
下面是用于构建项目的docker-组合文件:
web:
restart: always
build: ./web
expose:
- "8000"
links:
- postgres:postgres
volumes:
- /usr/src/app/static
env_file: .env
command: /usr/local/bin/gunicorn -w 2 -b :8000 app:app
nginx:
restart: always
build: ./nginx/
ports:
- "80:80"
volumes:
- /www/static
volumes_from:
- web
links:
- web:web
data:
restart: always
image: postgres:latest
volumes:
- /var/lib/postgresql
command: "true"
postgres:
restart: always
image: postgres:latest
volumes_from:
- data
ports:
- "5432:5432"它引用了两个不同的Dockerfile:
Dockerfile #1构建App容器,它是一行:
FROM python:3.4-onbuildDockerfile #2用于构建nginx容器。
FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled/ /etc/nginx/sites-enablededit2:
有些人认为这些数据持续了好几次,这也是我最初的想法。情况并非如此,因为在测试之前,我通过docker删除所有活动的坞容器。此外,“额外”数据的数量也不一致,在我迄今为止运行的几个测试中,随机地从3-6个不等。
发布于 2015-09-04 23:12:40
结果发现,这是一个与对容器使用run命令有关的错误,在Dockerfile/Dockerfile中使用了"restart: a“指令。为了在没有bug修复的情况下解决这个问题,我从web容器中删除了“重新启动:始终”。
https://stackoverflow.com/questions/32362491
复制相似问题