如何从docker hub添加更多功能到官方postgres图像?

时间:2017-07-07 01:44:54

标签: image postgresql docker full-text-search containers

如果使用官方的postgres图片:

https://hub.docker.com/_/postgres/

是一种使用PostgreSQL数据库的简单方法。

但是如果我需要使用一些PostgreSQL扩展,例如pgroonga:

https://pgroonga.github.io

如何将其添加到官方的PostgreSQL图像中?

将该图像作为容器运行,然后登录到它添加扩展,最后创建一个新图像?有可能吗?

如果存在正式的pgroonga图像会很好,但现在还没有:

https://hub.docker.com/u/groonga/

最后一种方法是为groonga创建一个图像,在运行完整堆栈时链接到postgres容器。

使用容器部署现代Web应用程序时,哪种方式适用于这种情况?

1 个答案:

答案 0 :(得分:2)

你应该看看(让我们假设你将使用Debian)

https://pgroonga.github.io/install/debian.html

所以你有一些命令要启动,所以或多或少这样的Dockerfile应该做的伎俩

FROM postgres RUN apt udate -y && apt install -y -V apt-transport-https \ && echo "deb https://packages.groonga.org/debian/ jessie main" >> /etc/apt/sources.list.d/groonga.list \ && echo "deb-src https://packages.groonga.org/debian/ jessie main" >> /etc/apt/sources.list.d/groonga.list \ &&...

我猜你看到了方法

请记住,在Dockerfile中,您无法回答"是"或"不"任何命令,所以你必须自动化所有命令。 如果你不能自动化所有,你可以做一些事情,获得​​一个图像,用bash提示符(或sh或zsh ...)启动它,交互式地执行难以自动化的所需命令,然后你

docker commit

参见文档

https://docs.docker.com/engine/reference/commandline/commit/

另外,在Dockerfile中,默认情况下,你是root用户,所以除非你使用Dockerfile指令,否则不需要sudo

USER myuser