"LABEL version = "1.0"LABEL description="prin psql images"# 设置环境变量,_postgresql基于容器创">
当前位置:   article > 正文

PSQL容器带脚本初始化_postgresql基于容器创建表的初始化脚本

postgresql基于容器创建表的初始化脚本

目的:

为了方便在psql容器创建后,不需要进入其中单独创建我们需要的用户和数据库(或者其他操作),可以编写在Dockerfile时设置初始化脚本。

Dockerfile:

# base镜像是postgres:lates
FROM postgres:latest

# 镜像相关的资料信息
LABEL maintainer="Prin<xxx@qq.com>"
LABEL version = "1.0"
LABEL description="prin psql images"

# 设置环境变量,超级管理员的密码是必须设置的
ENV POSTGRES_PASSWORD=Cisc0123

# 向/docker-entrypoint-initdb.d/目录下添加init-user-db.sql脚本
ADD init-user-db.sql /docker-entrypoint-initdb.d/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

容器运行时,psql会自动读取/docker-entrypoint-initdb.d/目录下的.sql脚本,并执行。

init-user-db.sql:

    CREATE USER dev_dbuser WITH PASSWORD 'Cisc0123';
    CREATE DATABASE dev_db;
    GRANT ALL ON DATABASE dev_db TO dev_dbuser;
  • 1
  • 2
  • 3

创建管理员、数据库,并且赋予管理员权利。.sql文件最后和Dockerfile放在同一个文件夹中。

在Dockerfile所在的文件夹下:

步骤1:在当前目录下使用Dockerfile构建镜像

docker build -t prin/psql .
  • 1

步骤2:使用镜像生成容器

docker run --name dev_db_psql -p 5432:5432 -d prin/psql 
  • 1

步骤3:远程设备访问数据库,可以直接用脚本中的账号数据库登陆,回车后输入密码即可

psql -U dev_dbuser -d dev_db -h 192.168.0.109(运行容器设备的IP地址)
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/282485
推荐阅读
相关标签
  

闽ICP备14008679号