Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 用于构建spring云数据流服务器映像的Dockerfile_Spring Boot_Spring Cloud Dataflow - Fatal编程技术网

Spring boot 用于构建spring云数据流服务器映像的Dockerfile

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云数据流服务器的

我已经从GitHub下载了SpringCloudDataflow服务器代码。我试图了解docker映像是如何为该服务器构建的。但是我在这个代码库中找不到dockerfile

参考文档“添加自定义JDBC驱动程序”一节要求修改Pom.xml并用很少的信息重建。我需要使用一个自定义jar并重建图像


我已经看过这篇文章了,但我正在试图了解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"]