首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据添加到postgres docker容器中的Python脚本多次运行

将数据添加到postgres docker容器中的Python脚本多次运行
EN

Stack Overflow用户
提问于 2015-09-02 20:27:04
回答 1查看 1.2K关注 0票数 1

我正试图找到一种很好的方法,用简单应用程序的初始数据填充数据库。我正在使用来自realpython.com的教程作为起点。然后,在创建数据库以添加单个条目之后,我运行一个简单的python脚本,但是当我这样做时,数据会被多次添加,尽管我只调用了一次脚本结果

人口脚本(test.py):

代码语言:javascript
复制
   from app import db                                                                                                                                                          
   from models import *                                                                                                                                                        

   t = Post("Hello 3")                                                                                                                                                         
   db.session.add(t)                                                                                                                                                           
   db.session.commit()  

编辑:

下面是用于构建项目的docker-组合文件:

代码语言:javascript
复制
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容器,它是一行:

代码语言:javascript
复制
FROM python:3.4-onbuild

Dockerfile #2用于构建nginx容器。

代码语言:javascript
复制
FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled/ /etc/nginx/sites-enabled

edit2:

有些人认为这些数据持续了好几次,这也是我最初的想法。情况并非如此,因为在测试之前,我通过docker删除所有活动的坞容器。此外,“额外”数据的数量也不一致,在我迄今为止运行的几个测试中,随机地从3-6个不等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-04 23:12:40

结果发现,这是一个与对容器使用run命令有关的错误,在Dockerfile/Dockerfile中使用了"restart: a“指令。为了在没有bug修复的情况下解决这个问题,我从web容器中删除了“重新启动:始终”。

相关问题:https://github.com/docker/compose/issues/1013

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32362491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档