Tag: postgresql

在Ubuntu 14.04.1 Docker容器上无法获取postgresql-9.3-postgis-2.1

我试图为克隆的应用程序安装postgresql-9.3-postgis-2.1或postgresql-9.1-postgis-2.1,但是我只能从我的Ubuntu docker镜像上得到postgresql-9.4-postgis-2.1。 我看着图像,发现它在Ubuntu 14.04.1图像上。 我试图在我的Xubuntu 14.04.2 VM上安装postgis,一切正常。 我怎么能得到安装工程确定? Dockerfile非常简单: FROM python:2.7 RUN mkdir /workspace RUN mkdir /data WORKDIR /workspace RUN apt-get update RUN apt-get install postgresql postgresql-common postgresql-9.3-postgis-2.1 错误代码也是非常正常的: E: Unable to locate package postgresql-9.3-postgis-2.1 E: Couldn't find any package by regex 'postgresql-9.3-postgis-2.1'

运行rake db时出现错误:在Docker中创build

我是Docker中的新成员,然后在运行Ruby on Rails和Postgresql的官方教程。 当我运行docker-compose up但是当我尝试命令docker-compose run web rake db:create ,我得到了一个FATAL: role "root" does not exist错误FATAL: role "root" does not exist 。 database.yml default: &default adapter: postgresql encoding: unicode pool: 5 host: db development: <<: *default database: myapp_development test: <<: *default database: myapp_test production: <<: *default database: myapp_production username: postgres password:

如何为postgis创builddocker镜像,以便在构build时或者在容器完全运行之前启用扩展?

我的意思是我想创build一个postgis的docker镜像,在build之后就可以完全使用。 所以,如果用户运行 docker run -e POSTGRES_USER=user somepostgis 用户数据库将被创build和扩展已经安装 ? 官方postgres图像不能用于AFAIK。 基本上需要写脚本,并告诉它将是入口点。 这个脚本应该创build数据库,并在不同端口上运行porstgres服务器来创build扩展,然后在端口5432上重新启动它。 但是我不知道,docker工人也这么做。 现在是说没有pg_ctl命令 如果你想帮助你可以分叉 FROM ubuntu:15.04 #ENV RELEASE_NAME lsb_release -sc #RUN apt-get update && apt-get install wget #RUN echo "deb http://apt.postgresql.org/pub/repos/apt ${RELEASE_NAME}-pgdg main" >> /etc/apt/sources.list #RUN cat /etc/apt/sources.list #RUN wget –quiet -O – http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add – RUN apt-get update \ && […]

使用相同的数据/源代码同步多个服务器和本地计算机

背景: build立一个由2名开发人员组成的Web应用程序。 RESTful后端通过Flask。 使用Linux,Apache,Redis和Postgres。 3台服务器: 1用于生产 1发展 1为UAT 4个数据库: 1用于PROD / UAT服务器 1用于DEV服务器 1在他本地机器上的开发者A. 1为他的本地机器上的开发者B. 2本地机器/开发人员 除了4个数据库之外,每个开发者都有一个额外的数据库用于testing。 这个testing数据库在两个开发人员之间必须始终保持一致。 开发人员B拥有自己的数据分支,向开发人员A开发的主数据库发送请求。 问题: 我们没有真正的协议来轻松地在每个数据库之间传输数据。 例如,开发人员testing数据库往往是不同的,这会导致混乱。 将数据从DEV移动到UAT / PROD是手动完成的。 开发人员在不同的环境和不同的分支上工作。 我们在github中使用pull请求将代码转移到开发者A的主要回购。 题 你推荐什么样的解决scheme来解决我们的数据库问题? 有没有更好的方式来分享数据? 开发者A和开发者B是否有更好的方式来共享他们的环境和源代码?

玩框架多个Ajax请求

我在Player 2.3.x上有一个restapi的Docker容器。 这个api和PostgresSQL 9.4数据库(也在一个Docker容器上)说话并且提供JSON。 客户端是一个与React同构的应用程序(也在Docker容器上)。 当客户端改变路由时,多个请求被发送到api。 问题是每个请求都是exception缓慢的。 例如,我有这个uri: GET /api/taxon/185214/geojson 当我从浏览器直接发送这个请求时,响应显示在4s的末尾。 当这个请求与其他请求一起发送时,需要花费12秒的时间。 这次可能会导致什么? 当然,api的每个动作都是asynchronous的。 例如,geojson动作: public static Promise<Result> showGeoJson(final Long id) { Promise<GeoJsonModel> promise = F.Promise.promise( new Function0<GeoJsonModel>() { public GeoJsonModel apply() { // Get data with ebean return geojson; } } ); return promise.map( new Function<GeoJsonModel, Result>() { public Result apply(GeoJsonModel geojson) { // […]

docker化的数据库密码pipe理

例如,我需要将PostgreSQL,MongoDB和Redis“dockerize”到一个单独的容器。 我想创build一个安全的密码保护的用户/angular色的存储,然后从几个dockerized应用程序访问它们。 Dockerfile肯定是在VCS下,我不会保留任何密码。 是否有任何pipe理dockerized系统的密码/凭证的最佳做法?

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

我试图find一个很好的方式来填充一个简单的应用程序的初始数据的数据库。 我正在使用来自realpython.com的教程作为起点。 然后,我创build数据库后,运行一个简单的Python脚本添加一个单一的项目,但是当我这样做的数据被添加多次,即使我只调用脚本一次。 结果 人口脚本(test.py): from app import db from models import * t = Post("Hello 3") db.session.add(t) db.session.commit() 编辑: 下面是我用来构build项目的docker-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 […]

docker不能启动postgresql服务器与现有的数据目录

我有一个现有的postgres数据库刚才叫DB1,并希望泊坞窗,但我不能启动服务器只是将PGDATA设置为DB1的数据目录,而消息是 目录“/ var / lib / postgresql / data”不是数据库集群目录 但服务器可以在主机上正确启动,为什么?

离线恢复PostgreSQL数据库

我想在inheritance自官方PostgreSQL映像的Docker容器中提供初始数据。 有没有一种方法可以在数据库服务器不运行时从命令行(使用pg_restore )恢复PostgreSQL转储? 我发现下面的工作,但不使用pg_restore : gosu postgres postgres –single -jE <<-EOSQL CREATE LANGUAGE plpythonu; EOSQL 我已经阅读了官方页面中 docker-entrypoint-initdb.d ,但它只接受原始SQL,并且希望将对官方映像的修改降到最低。

无法通过bash脚本创buildpostgres扩展

在Docker容器中启动了一个postgres数据库,然后想用以下脚本安装扩展: su postgres sh -c "psql -U postgres <<EOSQL CREATE EXTENSION hstore; CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology; CREATE EXTENSION fuzzystrmatch; EOSQL" trap "echo \"Sending SIGTERM to postgres\"; killall -s SIGTERM postgres" SIGTERM su postgres sh -c "$POSTGRES -D $DATADIR -c config_file=$CONF" & wait $! 但它什么都不做,在扩展列表中只安装了一个默认的plpgsql。 但如果我input容器 docker exec -it osm-database bash 并按顺序在cli中运行以下命令 su postgres […]