小编Tom*_*lin的帖子

docker和docker-compose中的多个数据库

我有一个包含两个主要Java应用程序的项目,这些应用程序使用八个postgres数据库,那么docker-compose中是否有一种方法可以构建八个不同的数据库,以便每个数据库具有不同的所有者和密码?我什至可以在docker-compose中做到这一点吗?

例如

services:
    postgresql:
        build: db/.
        ports:
            - "5432:5432"
        environment:
          - POSTGRES_DB=database1
          - POSTGRES_USER=database1
          - POSTGRES_PASSWORD=database1
Run Code Online (Sandbox Code Playgroud)

我知道我可以将所有.sql文件放入docker-entrypoint-initdb.d中,而postgres会自动将它们生成,但是如何声明什么.sql文件进入哪个数据库?

Tnx,汤姆

postgresql docker docker-compose

6
推荐指数
3
解决办法
1万
查看次数

pg_config - 如何更改 postgres 版本

默认情况下,我的两台 ubuntu 14 机器上有 postgres 10 版本,但我在其中两台机器上安装了 postgres 9.6。

但在其中之一上 pg_config 给我:

VERSION = PostgreSQL 9.6.6
Run Code Online (Sandbox Code Playgroud)

和另一个:

VERSION = PostgreSQL 10.1
Run Code Online (Sandbox Code Playgroud)

他们在以下位置具有相同的 libpq-dev 软件包:

dpkg -l | grep libpq-dev

libpq-dev  10.1-1.pgdg14.04+1  amd64 header files for libpq5 (PostgreSQL library)
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否有办法更改安装的版本,它为我提供了 postgres 9.6 而不是 postgres 10.01?也许使用 pg_config 文件?

Tnx,汤姆

更新:在仍然显示 postgres 10 的实例上,这是结果(表明它尚未安装):

ii  pgdg-keyring                         2017.3                                     all          keyring for apt.postgresql.org
ii  postgresql-9.6                       9.6.6-1.pgdg14.04+1                        amd64        object-relational SQL database, version 9.6 server
ii  postgresql-client-9.6                9.6.6-1.pgdg14.04+1                        amd64        front-end programs for PostgreSQL 9.6
ii  postgresql-client-common             189.pgdg14.04+1 …
Run Code Online (Sandbox Code Playgroud)

postgresql ubuntu config

5
推荐指数
1
解决办法
6854
查看次数

aws cli - 在 bash 脚本中下载 rds postgres 日志

我编写了一个简单的 bash 脚本来下载我的 RDS postgres 文件。但更重要的是,在终端上一切正常,但是当我在脚本中尝试相同的操作时,我收到错误:

An error occurred (DBLogFileNotFoundFault) when calling the DownloadDBLogFilePortion operation: DBLog File: "error/postgresql.log.2017-11-05-23", is not found on the DB instance
Run Code Online (Sandbox Code Playgroud)

有问题的命令是这样的:

aws rds download-db-log-file-portion --db-instance-identifier foobar --starting-token 0 --output text --log-file error/postgresql.log.2017-11-05-23 >> test.log
Run Code Online (Sandbox Code Playgroud)

一切正常,但是当我在 bash 脚本中放入完全相同的行时,我收到错误消息,没有数据库日志文件 - 这是无稽之谈,它们就在那里。

这是 bash 脚本:

download_generate_report() {

for filename in $( aws rds describe-db-log-files --db-instance-identifier $1 | awk {'print $2'} | grep $2 )
do

echo $filename
echo $1

aws rds download-db-log-file-portion --db-instance-identifier $1 --starting-token 0 --output text …
Run Code Online (Sandbox Code Playgroud)

bash rds aws-cli

4
推荐指数
1
解决办法
2074
查看次数

谷歌存储 python API - 上传 StringIO 对象

我成功地将文件上传到谷歌存储,但我想跳过文件的创建并改用StringIO并直接在谷歌存储上创建文件。

由于我是 python 新手,我只是尝试使用我用于上传创建的文件的标准方法:

def cloud_upload(self, buffer, bucket, filename):
    buffer.seek(0)
    client = storage.Client()
    bucket = client.get_bucket(bucket)
    blob = bucket.blob(filename)
    blob.upload_from_filename(buffer)
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

类型错误:预期的字符串或缓冲区

但是既然我给了它 StringIO 对象,我不知道为什么这不起作用?

python stringio google-cloud-platform

3
推荐指数
1
解决办法
1779
查看次数

postgres RDS 服务器中的 rds_superuser 角色

我刚刚在 aws 上创建了一个新的 postgres RDS 实例(通过仪表板),我给了它一个默认用户,让我们称他为“杰克”。

当我登录到实例时,我看到我创建的用户“jack”,并且他附加了一个角色“ rds_superuser ”。(所以我认为我可以做我以前在普通 postgres 服务器上用超级用户做的同样的事情)。

我检查了文档,我发现这是不可能的。

作为默认用户“stan”登录后,我创建了一个像“stan”这样的新数据库用户,并想创建一个所有者为用户“stan”的新数据库,我不能吗?

我输入了这样的东西:

CREATE DATABASE foobar WITH OWNER = stan;
Run Code Online (Sandbox Code Playgroud)

但是我遇到了一个错误,说的是:

错误:必须是角色“stan”的成员

所以,我所做的是,将角色设置为“stan”,以默认用户“jack”的身份注销,以“stan”的身份登录到 RDS 实例,并以他为所有者创建该数据库。

由于我有三个不同的用户,我不得不重复最后一步三遍。

我的问题是,有没有办法让我在 RDS postgres 创建期间创建的默认用户“jack”能够创建新数据库(如常规 postgres 服务器安装上的超级用户)并为不同的所有者提供这样的:

CREATE DATABASE foobar WITH OWNER = stan;
Run Code Online (Sandbox Code Playgroud)

Tnx,汤姆

postgresql rds amazon-web-services

3
推荐指数
1
解决办法
2万
查看次数

Rails中的Flash消息4

我在使用Rails 4中的flash消息时遇到了问题.我正在做一个月的rails,当我尝试登录页面或尝试注销时,我没有收到任何flash消息?可能是浏览器吗?

这是application.html.erb中flash消息的代码

            <% flash.each do |name, msg| %>
               <% content_tag(:div, msg, class: "alert alert-#{name}") %>
            <% end %>
Run Code Online (Sandbox Code Playgroud)

我在ubuntu 14上,我正在使用Firefox/Chrome

Tnx,汤姆

ruby ruby-on-rails

2
推荐指数
1
解决办法
160
查看次数

docker 中的 Wildfly swarm - 启动 http 服务器时出现异常

我在 Docker 中运行一个 jar 文件(主机 macosx),在启动过程中我得到了这个堆栈跟踪:

10:42:28,101 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default:
 Could not start http listener

rating_1       | 10:42:28,401 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
rating_1       |     ("subsystem" => "undertow"),
rating_1       |     ("server" => "default-server"),
rating_1       |     ("http-listener" => "default")
rating_1       | ]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.undertow.listener.default" => "org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
rating_1 …
Run Code Online (Sandbox Code Playgroud)

docker wildfly-swarm

2
推荐指数
1
解决办法
1506
查看次数