首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker multistage不调用入口点

Docker multistage不调用入口点
EN

Stack Overflow用户
提问于 2021-01-25 21:54:53
回答 1查看 167关注 0票数 0

我有一个运行在Docker中的grails应用程序,我正在尝试添加Apache Derby服务器,以便使用Docker multi stage在相同的映像中运行。但是当我添加Derby时,grails应用程序不会运行。

所以我从这个开始:

代码语言:javascript
复制
$ cat build/docker/Dockerfile
FROM azul/zulu-openjdk:13.0.3
EXPOSE 8080
VOLUME ["/AppData/derby"]
WORKDIR /app
COPY holder-0.1.jar application.jar
COPY app-entrypoint.sh app-entrypoint.sh
RUN chmod +x app-entrypoint.sh
RUN apt-get update && apt-get install -y dos2unix && dos2unix app-entrypoint.sh
ENTRYPOINT ["/app/app-entrypoint.sh"]

到目前为止,这一切都很好,grails作为web服务器启动,我可以连接到web应用程序。但是后来我加入了Derby...

代码语言:javascript
复制
FROM azul/zulu-openjdk:13.0.3
EXPOSE 8080
VOLUME ["/AppData/derby"]
WORKDIR /app
COPY holder-0.1.jar application.jar
COPY app-entrypoint.sh app-entrypoint.sh
RUN chmod +x app-entrypoint.sh
RUN apt-get update && apt-get install -y dos2unix && dos2unix app-entrypoint.sh
ENTRYPOINT ["/app/app-entrypoint.sh"]
FROM datagrip/derby-server
WORKDIR /derby

现在,当我启动容器时,Derby会运行,但grails应用程序根本不会运行。从终端上打印的内容可以明显看出这一点,但我也登录并执行了ps aux来验证它。

现在,我想我可以考虑创建自己的启动脚本来启动Derby服务器,尽管这似乎违反了两个映像配置的独立性。

其他人可能会说,我应该使用两个容器,但我希望保持简单,derby是一个非常简单的数据库,我觉得这里没有必要这么复杂。

我只是想把多级docker容器的概念推得太远了吗?

docker容器启动多个进程真的很正常吗?在前台启动grails之前,我是否必须编造自己的入口点,在后台启动Derby服务器?或者这一切都是错的,我真的应该使用多个容器?

EN

回答 1

Stack Overflow用户

发布于 2021-01-25 22:20:23

Docker可以在一个容器中拥有多个进程,但概念不同:一个容器,一个进程。有一个单独的数据库肯定是应该这样做的。

现在Dockerfile的问题是,在声明了第二个FROM之后,您实际上已经丢弃了到目前为止所做的大部分工作。您可以使用前一个阶段来复制其中的一些文件(这通常用于构建一些二进制文件),但Docker不会为您执行此操作,除非您显式定义要复制的内容。因此,您的实际入口点就是在datagrip/derby-server图像中声明的入口点。

我建议您开始使用docker-compose。这是一个很好的工具,可以运行多个容器,而不会产生复杂的问题。使用这样的文件:

代码语言:javascript
复制
version: "3.0"
services:
  app:
    build:
      context: .

  database:
    image: datagrip/derby-server

docker-compose将为应用程序构建一个映像(如果Dockefile在同一目录中,但可以自定义),并启动一个数据库。可以从应用程序容器中以“database”(它是一个可解析的名称)来访问数据库。有关更多选项,请参阅this reference

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65886137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档