У меня есть проект, в котором выполняется Vue & Spring Boot, и мне нужно создать файл docker-compose.yml
для запуска mvn clean install
, чтобы сгенерировать .jar
, а затем создать «новый» образ из другого Dockerfile с указанным * 1004. * внутри контейнера докера.
Это Dockerfile, который необходимо запустить после завершения mvn clean install
:
FROM java:8
ENV WKHTML_VERSION 0.12.4
# Builds the wkhtmltopdf download URL based on version numbers above
ENV DOWNLOAD_URL "https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/${WKHTML_VERSION}/wkhtmltox-${WKHTML_VERSION}_linux-generic-amd64.tar.xz"
RUN apt-get update && \
apt-get install -y --no-install-recommends wget && \
wget $DOWNLOAD_URL && \
tar vxf wkhtmltox-${WKHTML_VERSION}_linux-generic-amd64.tar.xz && \
cp wkhtmltox/bin/wk* /usr/local/bin/ && \
cp wkhtmltox/lib/* /usr/local/lib/ && \
rm wkhtmltox-${WKHTML_VERSION}_linux-generic-amd64.tar.xz
# @see https://spring.io/guides/gs/spring-boot-docker/
COPY server/target/redo-server-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
Так что шаги сборки должны быть примерно такими:
- Установить узел + maven / вытащить эти образы
- Установить
postgresql
и вытащить этот образ
- Выполнить
mvn clean install
и сгенерировать .jar
- Создайте новое изображение из вышеупомянутого
Dockerfile
и запустите его
Я новичок в docker-compose
, поэтому у меня проблемы с настройкой в правильном порядке выполнения.
Причина, по которой мне нужно это сделать, связана с тем, что в производственном конвейере отсутствует node or npm
, что необходимо для запуска полного приложения maven (Vue.js
и Spring Boot
app), поэтому для этого требуется компилируется изнутри контейнера Docker
Было бы очень признательно, если бы кто-нибудь мог указать мне правильное направление, не говоря уже о - возможно ли это сделать?