国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Docker啟動(dòng)PostgreSQL時(shí)創(chuàng )建多個(gè)數據庫的解決方案

發(fā)布時(shí)間:2021-08-15 18:37 來(lái)源: 閱讀:0 作者:南瓜慢說(shuō) 欄目: 服務(wù)器 歡迎投稿:712375056

1 前言

在文章《》中我們介紹如何通過(guò)Docker來(lái)啟動(dòng)PostgreSQL,但只有一個(gè)數據,如果想要創(chuàng )建多個(gè)數據庫在同一個(gè)Docker容器上怎么辦呢?

2 兩種方案

一種方案是把shell/sql腳本放入/docker-entrypoint-initdb.d/目錄中,讓容器啟動(dòng)的時(shí)候自動(dòng)執行創(chuàng )建;另一種是通過(guò)shell腳本指定創(chuàng )建,本質(zhì)是一樣的。這里只介紹第一種。

shell腳本或sql腳本放入指定目錄,就會(huì )自動(dòng)執行,兩種腳本都可以。

shell腳本例子如下:

#!/bin/bash

set -e
set -u

function create_user_and_database() {
	local database=$1
	echo "  Creating user and database '$database'"
	psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
	    CREATE USER $database;
	    CREATE DATABASE $database;
	    GRANT ALL PRIVILEGES ON DATABASE $database TO $database;
EOSQL
}

if [ -n "$POSTGRES_MULTIPLE_DATABASES" ]; then
	echo "Multiple database creation requested: $POSTGRES_MULTIPLE_DATABASES"
	for db in $(echo $POSTGRES_MULTIPLE_DATABASES | tr ',' ' '); do
		create_user_and_database $db
	done
	echo "Multiple databases created"
fi

sql腳本例子如下:

CREATE USER pkslowuser;

CREATE DATABASE logdata;
GRANT ALL PRIVILEGES ON DATABASE logdata TO pkslowuser;

CREATE DATABASE orderdata;
GRANT ALL PRIVILEGES ON DATABASE orderdata TO pkslowuser;

CREATE DATABASE userdata;
GRANT ALL PRIVILEGES ON DATABASE userdata TO pkslowuser;

3 打包啟動(dòng)

準備Dockerfile,把shell/sql腳本文件放入鏡像中去:

FROM postgres:10
COPY src/main/resources/create-multiple-postgresql-databases.sh /docker-entrypoint-initdb.d/
COPY src/main/resources/create-multiple-postgresql-databases.sql /docker-entrypoint-initdb.d/

啟動(dòng)如下:

docker run -itd \
    --name pkslow-postgres \
    -e POSTGRES_MULTIPLE_DATABASES=db1,db2 \
    -e POSTGRES_USER=pkslow \
    -e POSTGRES_PASSWORD=pkslow \
    -p 5432:5432 \
    pkslow/postgresql-multiple-databases:1.0-SNAPSHOT

啟動(dòng)成功后,就會(huì )創(chuàng )建如下數據庫:

db1,db2,
logdata,orderdata,userdata

4 總結

這是在開(kāi)發(fā)測試階段使用的方案,實(shí)際上把數據庫放在容器中不是一個(gè)好的選擇。

代碼請查看:

到此這篇關(guān)于Docker啟動(dòng)PostgreSQL時(shí)創(chuàng )建多個(gè)數據庫的文章就介紹到這了,更多相關(guān)Docker啟動(dòng)PostgreSQL內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

被男人吃奶跟添下面特舒服| 日韩精品人成在线播放| 99久久99久久免费精品小说| 中文精品久久久久国产网址| 成人免费视频无码专区| 99这里只有精品|