![](/img/trans.png)
[英]Run Maven project inside Docker Container with run time parameters
[英]Docker – Compile maven project inside docker container & run it from there
我跑的Vue和春季啟動,我需要創建項目docker-compose.yml
文件運行mvn clean install
生成.jar
,然后從另一個Dockerfile打造一個“新”的形象與說.jar
內泊塢窗容器。
這是在mvn全新mvn clean install
完成后需要運行的Dockerfile:
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"]
因此,構建步驟必須是這樣的:
postgresql
並提取該圖像 mvn clean install
並生成.jar
Dockerfile
構建新映像並運行它 我是docker-compose
新手,因此無法按正確的執行順序進行設置。
我需要執行此操作的原因是由於生產管道中沒有node or npm
,而運行完整的maven應用程序( Vue.js
和Spring Boot
應用程序)則需要使用node or npm
,這就是為什么需要從中進行編譯的原因在Docker容器中
如果有人能指出正確的方向,我將不勝感激,更不用說–這可能嗎?
通過編寫一個多步驟構建作為我的Dockerfile來解決。 我正在將node作為依賴項安裝在客戶端的pom.xml文件中。
# Install maven and copy project for compilation
FROM maven:latest as builder
COPY pom.xml /usr/local/pom.xml
COPY server /usr/local/server
COPY client /usr/local/client
WORKDIR /usr/local/
RUN mvn clean install
FROM openjdk: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
COPY --from=builder /usr/local/redo/server/target/server-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.