Я пытаюсь найти хороший способ заполнить базу данных исходными данными для простого приложения. Я использую учебник от realpython.com в качестве отправной точки. Затем я запускаю простой скрипт python после создания базы данных, чтобы добавить одну запись, но когда я делаю это, данные добавляются несколько раз, хотя я только вызываю script один раз. resultPython-скрипт для добавления данных в postgres docker container выполняется несколько раз
сценарий населения (test.py):
from app import db
from models import *
t = Post("Hello 3")
db.session.add(t)
db.session.commit()
редактировать:
Вот докер-Compose файл, который я использую для создания проекта:
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"
он ссылается два разных файла Dockerfiles:
Dockerfile # 1, который строит App контейнер и 1 строка:
FROM python:3.4-onbuild
Dockerfile # 2 используется для создания Nginx контейнера
FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled/ /etc/nginx/sites-enabled
edit2:
Некоторые люди полагают, что данные сохраняется в течение нескольких циклов, и это была моя первоначальная мысль. Это не так, поскольку я удаляю все активные контейнеры докеров через докер rm перед тестированием. Кроме того, количество «лишних» данных несовместимо, начиная с 3-6 в нескольких тестах, которые я выполнил до сих пор.
Полный код проекта находится здесь: [Repo] (https://github.com/aleedom/Docker-Testing). Я следую этому [Tutorial] (https://realpython.com/blog/python/dockerizing-flask-with-compose-and-machine-from-localhost-to-the-cloud/). – aleedom
Можете ли вы показать свой файл докеров, ваш докер? – user2915097
@ user2915097 Я обновил сообщение с файлом компоновки докеров, а также двумя файлами Dockerfiles, которые он ссылается. – aleedom