в моем образе докера Мне нужно запустить сервер Apache для развертывания моего веб-сайта, сервер Glassfish для развертывания соответствующего бэкенда и MongoDB, к которым подключается бэкэнд.
Мой файл докер выглядит следующим образом:
FROM httpd:2.4
FROM glassfish:latest
FROM mongo:3.6
COPY /backend_war_exploded /usr/local/glassfish4/glassfish/domains/domain1/autodeploy/backend_war_exploded
COPY /backend_war_exploded /usr/local/glassfish4/bin/backend_war_exploded
COPY /dist /usr/local/apache2/htdocs/
После создания образа я запускаю и запускаю его с:
docker run -dit --name application -p 80:80 -p 8080:8080 -p 27017:27017 applicationimg
docker start application
Когда я пытаюсь получить доступ через http://localhost:80
, он выдает код: ERR_EMPTY_RESPONSE
.То же самое для серверной части, но я могу получить доступ к mongodb
через порт 27017
.Когда я комментирую теги FROM
в моем dockerfile
и запускаю все по отдельности, это просто отлично работает.Кто-нибудь видит ошибку?Заранее спасибо.
ОБНОВЛЕНИЕ Я последовал вашему предложению и создал переписанный файл Docker:
FROM ubuntu:16.04
COPY /dist /var/www/html/
COPY /backend_war_exploded /glassfish4/glassfish/domains/domain1/autodeploy/backend_war_exploded
RUN apt-get update && apt-get install -y apache2
RUN apt-get install -y openjdk-8-jdk
RUN apt-get install -y wget && apt-get install -y unzip
RUN wget http://download.java.net/glassfish/4.1.2/release/glassfish-4.1.2.zip
RUN unzip glassfish-4.1.2.zip
RUN cd /glassfish4/bin/ && ./asadmin start-domain domain1
EXPOSE 80
EXPOSE 8080
Веб-сервер запускается и доступен через localhost:80
, но стеклянная рыбазапуск сервера при создании образа, но при запуске образа докера он больше не запускается.Когда я получаю доступ к контейнеру через docker exec
, я могу перейти к Glassfish и запустить его вручную.В чем проблема?