我必须为两个独立的程序构建一个坞映像,一个是java程序,另一个是c++程序。现在,我已经在我的dockerfile中为c++程序编写了依赖项及其工作正常,但是当我检查java时,在所有示例中都说它使用java的基本映像(来自openjdk:8-jre-阿尔卑斯),但我的问题是,我必须只从某个自定义映像构建映像。我正在使用ubuntu,我已经通过安装openjdk来运行我的简单java程序,但是我不知道如何正确地添加java的依赖项,并与c++一起在docker容器中运行它。
我尝试添加安装默认jdk,但它返回非零代码。我也尝试过运行apt-get安装oracle-java8-installer,但是它也没有工作。下面是我的Dockerfile。
来自csimage/ FROM服务器
RUN apt-get update -y
RUN apt-get install -y g++
RUN apt-get install -y make
RUN apt-get install -y build-essential
RUN apt-get install -y default-jdk
#C++ program
ADD ./cppProgram /cppProgram
#java program
ADD ./javaProgram /javaProgram
WORKDIR /cppProgram
WORKDIR /javaProgram
COPY abcserver.json /etc/
RUN make
发布于 2019-05-30 05:18:44
您可以查看错误日志:
docker history image_name
docker logs container_id
你会发现为什么你的容器没有启动。如果没有容器日志中的数据,很难给出其他建议。也许在存储库中找不到这些包。
一些小贴士:
如果您有两个独立的应用程序,那么每个应用程序都需要一个单独的容器。这当然没有必要,但从工程的角度来看是正确的。不推荐联合(当然,在你的情况下,它是不适用的)。
每次运行都会添加一个新的“层”,因此我建议您使用"\":
RUN apt-get update -y && \
apt-get install -y g++ && \
apt-get install -y make && \
apt-get install -y build-essential && \
apt-get install -y default-jdk
https://serverfault.com/questions/969476
复制