Docker文件在docker容器上运行spring启动应用程序?

嗨,我想创build一个docker图像与Java和Maven安装在它的端口8090打开。

一旦容器运行,我将复制我的弹簧引导项目到容器,我将从容器中运行它。

为此,我试图创builddocker文件。 我能够在当地成功build立docker图像。

当我尝试创build它的容器。 它没有带上容器。 我已经浪费了2天的时间。

我用下面的docker文件。

FROM ubuntu:16.04 ENV DEBIAN_FRONTEND noninteractive ENV VERSION 8 ENV UPDATE 152 ENV BUILD 16 ENV SIG aa0333dd3019491ca4f6ddbe78cdb6d0 ENV JAVA_HOME /usr/lib/jvm/java-${VERSION}-oracle # install jre RUN apt-get update -qq && \ apt-get upgrade -qqy --no-install-recommends && \ apt-get install curl unzip bzip2 -qqy && \ mkdir -p "${JAVA_HOME}" && \ curl --silent --location --insecure --junk-session-cookies --retry 3 \ --header "Cookie: oraclelicense=accept-securebackup-cookie;" \ http://download.oracle.com/otn-pub/java/jdk/"${VERSION}"u"${UPDATE}"-b"${BUILD}"/"${SIG}"/jre-"${VERSION}"u"${UPDATE}"-linux-x64.tar.gz \ | tar -xzC "${JAVA_HOME}" --strip-components=1 && \ apt-get remove --purge --auto-remove -y curl unzip bzip2 && \ apt-get autoclean && apt-get --purge -y autoremove && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN update-alternatives --install "/usr/bin/java" "java" "${JAVA_HOME}/bin/java" 1 && \ update-alternatives --install "/usr/bin/javaws" "javaws" "${JAVA_HOME}/bin/javaws" 1 && \ update-alternatives --set java "${JAVA_HOME}/bin/java" && \ update-alternatives --set javaws "${JAVA_HOME}/bin/javaws" EXPOSE 8090 ENTRYPOINT ["/bin/bash"] 

注意:我希望容器在运行时,我创build图像的容器forms。

docker hub中是否有预定义的Docker镜像可以使我的工作变得简单?

我会很高兴,如果你们给我一个docker文件来回答我的问题。

我知道只有stackoverflow可以解决我的问题。 提前致谢。

使用多阶段dockerbuild设https://docs.docker.com/engine/userguide/eng-image/multistage-build/

1)让第一阶段的maven图像https://hub.docker.com/r/library/maven/并通过将项目文件复制到其中并获取可执行jar文件来构build项目

2)将jar文件复制到第二阶段,使用https://hub.docker.com/_/openjdk/使用openjdk映像,然后在CMD []脚本中运行可执行jar文件

如果您使用高山版本的图像,docker容器的大小将会非常低效

问题在于端点。 必须在端点启动服务。 一旦这个服务(进程)完成,容器退出。

在我的情况下,我已经调用了一个简单的弹簧启动应用程序在入口点,监听端口8090。

经过2天以上的努力,学习得很好。