Spring boot 用于构建spring云数据流服务器映像的Dockerfile
我已经从GitHub下载了SpringCloudDataflow服务器代码。我试图了解docker映像是如何为该服务器构建的。但是我在这个代码库中找不到dockerfile 参考文档“添加自定义JDBC驱动程序”一节要求修改Pom.xml并用很少的信息重建。我需要使用一个自定义jar并重建图像Spring boot 用于构建spring云数据流服务器映像的Dockerfile,spring-boot,spring-cloud-dataflow,Spring Boot,Spring Cloud Dataflow,我已经从GitHub下载了SpringCloudDataflow服务器代码。我试图了解docker映像是如何为该服务器构建的。但是我在这个代码库中找不到dockerfile 参考文档“添加自定义JDBC驱动程序”一节要求修改Pom.xml并用很少的信息重建。我需要使用一个自定义jar并重建图像 我已经看过这篇文章了,但我正在试图了解Spring Dataflow server的原始映像是如何构建的。来自映像的docker文件将有助于从docker映像进行反向工程 构建Spring云数据流服务器的
我已经看过这篇文章了,但我正在试图了解Spring Dataflow server的原始映像是如何构建的。来自映像的docker文件将有助于从docker映像进行反向工程 构建Spring云数据流服务器的Maven配置是 要构建docker映像,您可以从克隆的repo运行以下操作(假设您使用的是最新版本):
谢谢戈皮纳坦。我使用了下面的dockerfile,而不是更改POM.xml并重建docker映像
FROM mcr.microsoft.com/java/jdk:8u212-zulu-alpine as build
RUN apk add --update \
curl \
&& rm -rf /var/cache/apk/*
WORKDIR /workspace/app
RUN mkdir target
RUN curl -sS -o /workspace/app/target/spring-cloud-dataflow-server-2.1.2.RELEASE.jar https://repo.spring.io/release/org/springframework/cloud/spring-cloud-dataflow-server/2.1.2.RELEASE/spring-cloud-dataflow-server-2.1.2.RELEASE.jar
RUN curl -sS -o /workspace/app/target/mysql-connector-java-8.0.16.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar
RUN mkdir -p target/dependency && (cd target/dependency; jar -xf ../spring-cloud-dataflow-server-2.1.2.RELEASE.jar)
RUN cp /workspace/app/target/mysql-connector-java-8.0.16.jar /workspace/app/target/dependency/BOOT-INF/lib/
FROM mcr.microsoft.com/java/jdk:8u212-zulu-alpine
VOLUME /tmp
ARG DEPENDENCY=/workspace/app/target/dependency
COPY --from=build ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY --from=build ${DEPENDENCY}/META-INF /app/META-INF
COPY --from=build ${DEPENDENCY}/BOOT-INF/classes /app
RUN echo "$(ls -lR /app)"
ENTRYPOINT ["java","-cp","app:app/lib/*","org.springframework.cloud.dataflow.server.single.DataFlowServerApplication"]
在Ilyaperumal Gopinathan的回答中,最好的方法是建立这个项目。fabric8 maven docker插件需要在本地安装docker,但要达到下面的4行,肯定要做很多工作 这是2.7.1版本生成的映像-
FROM springcloud/baseimage:1.0.0
ENV LANG=C.UTF-8
COPY maven /
VOLUME ["/tmp"]
ENTRYPOINT ["java","-jar","/maven/spring-cloud-dataflow-server.jar"]
spring cloud base映像似乎只是一个安装了Java 8()的Ubuntu基座?虽然答案是正确的,但要获得Docker文件需要做很多工作,因为fabric8插件也需要Docker运行。Dockerfile至少可以作为模板包含在文档中。这里的想法是能够使用不同的基本映像和其他构建工具,如skaffold,它们不需要本地docker设置。
FROM springcloud/baseimage:1.0.0
ENV LANG=C.UTF-8
COPY maven /
VOLUME ["/tmp"]
ENTRYPOINT ["java","-jar","/maven/spring-cloud-dataflow-server.jar"]