несколько языков (java и c ++) в одном контейнере докера

мне нужно создать единый образ докера для двух независимых программ, одна на java, а другая на c ++. Теперь я написал зависимости в моем файле dockerfile для программы на C ++, и она отлично работает, но когда я проверил java, во всех примерах говорилось, что используется базовый образ java (FROM openjdk: 8-jre-alpine), но моя проблема в том, что я нужно создавать образ только из определенного настроенного образа. Я использую ubuntu, и я запустил свою простую java-программу, установив openjdk, но я не знаю, как правильно добавить зависимости для java и запустить ее в контейнере докера вместе с c ++.

Я попытался добавить RUN apt-get install -y default-jdk , но возвращает ненулевой код. Я также пробовал RUN apt-get install oracle-java8-installer , но это тоже не сработало. Ниже приведен мой файл Docker.

FROM csimage / abcserver

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 
0
задан 30 May 2019 в 13:28
1 ответ

Puteți urmări jurnalul de erori:

docker history image_name
docker logs container_id

Și veți afla de ce containerul dvs. nu pornește. Este greu să vă ofer alte sfaturi fără a avea date din jurnalul containerului. Poate că aceste pachete nu se găsesc în depozit.

Câteva sfaturi:

Dacă aveți 2 aplicații independente, atunci aveți nevoie de un container separat pentru fiecare dintre ele. Desigur, acest lucru nu este necesar, dar este corect din punct de vedere tehnic. Unite nu este recomandat (poate că, desigur, în cazul dvs. nu este aplicabil.)

Fiecare RUN adaugă un nou „strat”, așa că vă sfătuiesc să utilizați „\”:

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
0
ответ дан 23 November 2019 в 23:39

Теги

Похожие вопросы