我需要使用包含数据的postgres构建docker映像

时间:2018-11-08 13:29:59

标签: postgresql docker docker-compose pg

所以,我需要具有以下内容的docker映像:我的程序使用postgresql,postgresql及其中的一些数据 我使用这篇文章:https://medium.com/@sharmaNK/build-postgres-docker-image-with-data-included-489bd58a1f9e

我的步骤:

  1. docker-compose build //创建ps_image_with_data
  2. docker run --name ps-export -p 5432:5432 -i postgres
  3. 使用dbeaver连接到5432 db;创建表;在表中放一些行
  4. docker exec -it my_container_with_data_id bash
  5. mkdir /postgres
  6. cp -r /var/lib/postgresql/data/* /postgres
  7. docker commit ps-export ps_image_with_data
  8. docker run --env PGDATA=postgres -p 5432:5432 -i ps_image_with_data // //我已经尝试了ps_image_with_data和在步骤7中创建的新图像

经过8个步骤,我得到了:

  

2018-11-08 12:44:52.549 UTC [1]日志:侦听IPv4地址   “ 0.0.0.0”,端口5432 2018-11-08 12:44:52.549 UTC [1]日志:正在监听   在IPv6地址“ ::”上,端口5432 2018-11-08 12:44:52.615 UTC [1]日志:   在Unix套接字上监听“ /var/run/postgresql/.s.PGSQL.5432”   2018-11-08 12:44:52.750 UTC [22]日志:数据库系统为   中断最后知道于2018-11-08 11:56:27 UTC 2018-11-08   12:45:25.042 UTC [22]日志:无法删除缓存文件   “ global / pg_internal.init”:权限被拒绝2018-11-08 12:45:25.042   UTC [22]日志:无法删除缓存文件   “ base / 13067 / pg_internal.init”:权限被拒绝2018-11-08   12:45:25.042 UTC [22]日志:数据库系统未正确关闭   下;自动恢复进行中2018-11-08 12:45:25.127 UTC [22]   日志:重做开始于0 / 166CF68 2018-11-08 12:45:25.127 UTC [22]日志:   无效的记录长度为0 / 166D048:想要24,得到0 2018-11-08   12:45:25.127 UTC [22]日志:重做于0 / 166D010 2018-11-08   12:45:25.259 UTC [22] PANIC:无法重命名文件   “ pg_logical / replorigin_checkpoint.tmp”到   “ pg_logical / replorigin_checkpoint”:权限被拒绝2018-11-08   12:45:25.357 UTC [1]日志:启动进程(PID 22)已终止   信号6:已中止2018-11-08 12:45:25.358 UTC [1]日志:正在中止   由于启动过程失败而启动2018-11-08 12:45:25.359 UTC [1]   日志:数据库系统已关闭

有人可以帮我解决吗?

1 个答案:

答案 0 :(得分:2)

怎么样

  1. docker run --name ps-export -p 5432:5432 -i postgres

  2. 使用dbeaver连接到5432 db;创建表;在表中放一些行

  3. 对主机进行转储( _proxies.ForEach(certainaction, timeOut);

  4. 在psql服务器下的data.sql中添加

`

docker-compose.yml
  1. volumes: - ./data.sql:/docker-entrypoint-initdb.d/init.sql

如果要在映像中包括docker-compose up,而不是第4步,请将其复制到dockerfile中的data.sql