nginx和自定义Jar在docker容器中

时间:2018-04-16 13:10:32

标签: docker nginx

我正在尝试在同一个docker容器中运行自定义java应用程序和nginx。 nginx在此充当反向代理,并将请求重定向到java应用程序。所以

外界 - > {nginx - >应用程序}(docker)。

如何设置?

1 个答案:

答案 0 :(得分:0)

首先,我将代理与java可执行文件分开,正如@jonrsharpe建议的那样。只需在另一个容器中使用官方nginx图像。

然后编写Dockerfile非常简单:

  • 选择基本图像(java官方图片可能是您的最佳选择)
  • 安装依赖项并将artefact复制到容器
  • 暴露您的jar将要使用的端口
  • 让Entrypoint使用相关选项执行jar,或使用类似supervisord的方法

编辑:

如果你需要将两个应用程序打包在同一个容器中,正如你所提到的那样,使用supervisord作为入口点几乎是强制性的。

一旦进程PID 1死亡/退出,Docker容器就会退出。你不能同时拥有带PID 1的java和nginx,所以你冒着一个没有运行jar的工作代理或没有代理运行jar的风险。 以下是supervisord的方便之处:您可以将两个应用程序添加到其中,并在其中一个应用程序终止后立即退出容器。