繁体   English   中英

您如何使用 Docker 构建秘密和 Docker 组合?

[英]How do you use Docker build secrets with Docker Compose?

使用docker build命令行,我可以传递构建密钥,如下所示

docker build \
  --secret=id=gradle.properties,src=$HOME/.gradle/gradle.properties \
  --build-arg project=template-ms \
  .

然后在 Dockerfile 中使用它

# syntax = docker/dockerfile:1.0-experimental

FROM gradle:jdk12 AS build
COPY *.gradle .
RUN --mount=type=secret,target=/home/gradle/gradle.properties,id=gradle.properties gradle dependencies
COPY src/ src/
RUN --mount=type=secret,target=/home/gradle/gradle.properties,id=gradle.properties gradle build
RUN ls -lR build
FROM alpine AS unpacker
ARG project
COPY --from=build /home/gradle/build/libs/${project}.jar /tmp
RUN mkdir -p /opt/ms && unzip -q /tmp/${project}.jar -d /opt/ms && \
  mv /opt/ms/BOOT-INF/lib /opt/lib
FROM openjdk:12
EXPOSE 8080
WORKDIR /opt/ms
USER nobody
CMD ["java", "-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8000", "-Dnetworkaddress.cache.ttl=5", "org.springframework.boot.loader.JarLauncher"]
HEALTHCHECK --start-period=600s CMD curl --silent --output /dev/null http://localhost:8080/actuator/health
COPY --from=unpacker /opt/lib /opt/ms/BOOT-INF/lib
COPY --from=unpacker /opt/ms/ /opt/ms/

我想使用 docker-compose 进行构建,但在docker-compose.yml 参考资料中找不到如何传递secret

这样开发人员只需要输入docker-compose up

您可以使用 environment 或 args 将变量传递给 docker-compose 中的容器。

args: - secret=id=gradle.properties,src=$HOME/.gradle/gradle.properties

environment: - secret=id=gradle.properties,src=$HOME/.gradle/gradle.properties

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM