postgresql - 在 Dockerfile 中启动 postgres
问题描述
当我使用 postgres docker 映像时,我运行
docker run --name mydb -e POSTGRES_PASSWORD=password -d postgres
我看到一个容器正在运行。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a36b98h8982a postgres "docker-entrypoint.s…" 36 minutes ago Up 36 minutes 5432/tcp mydb
所以我制作了我的 Dockerfile,因为我想初始化我的数据库
FROM postgres:latest
COPY pg-setup.sql /docker-entrypoint-initdb.d/
CMD ['postgres']
但是当我使用 Dockerfile 时,容器会立即退出。如何让它像 postgres 图像一样运行?
解决方案
如果您的 SQL 文件 pg-setup.sql 没有问题,您可以像这样更改 Dockerfile:
FROM postgres:latest
COPY pg-setup.sql /docker-entrypoint-initdb.d/
再看一个案例。这会很有帮助。
推荐阅读
- laravel - 如何使用 Laravel-vue-datatable 在 Vuejs 中填充此表?
- python - 即使我的搜索输入有相似的单词彼此分开(不是连续的),我如何从我的 sqlite 数据库中查询和获取数据
- java - restTemplate 调用,其中函数的参数是 MultipartHttpServletRequest 请求
- php - 如何从 PHP 中的嵌套 json 中跳过特定数据?
- android - 在我在 kotlin android studio 中创建的地图活动中添加 api 键后,地图上没有显示任何标记
- elasticsearch - 普通荧光笔“order”:“none”在 Elasticsearch 中不起作用
- r - 学习 R - 导入错误没有这样的文件
- c# - 如果 Excel 中有隐藏的行/列,Application.ActiveWindow.ScrollIntoView 无法正常用于图表
- haskell - 两个应用程序/单子保持单曲面结构但方式略有不同的实际意义是什么?
- ios - Why do my properties and outlets become nil after performing a segue?