diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..6b806adc --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,48 @@ +name: Publish Docker Images + +on: + push: + branches: + - master + - '*.x' + +jobs: + publish-to-docker-hub: + name: Publish to DockerHub + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Set up java + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: zulu + server-id: github + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + gpg-passphrase: GPG_PASSPHRASE + - name: Set up Docker(QEMU) + uses: docker/setup-qemu-action@v3 + - name: Set up Docker(Buildx) + uses: docker/setup-buildx-action@v3 + with: + driver-opts: image=moby/buildkit:master + platforms: linux/amd64,linux/arm64 + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build packages + run: mvn -P github clean package + env: + MAVEN_USERNAME: ${{ secrets.GHPKG_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.GHPKG_TOKEN }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + - name: Build and deploy to DockerHub + uses: docker/bake-action@v4 + with: + push: true diff --git a/README.md b/README.md index 6f7939d7..02480912 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,12 @@ ## 概述   Central Studio 是一个强大的微服务开发套件,包含了一系列常用的、通用的基础服务。目前包括: -- 网关中心 -- 认证中心 -- 组织架构中心 -- 存储中心 -- 广播中心 -- 日志中心 -- 数据服务中心 +- 网关中心(3000) +- 认证中心(3200) +- 数据服务中心(3300) +- 日志中心(3400) +- 存储中心(3500) +- 广播中心(3600)   Central Studio 在接下来会继续完善和丰富。 diff --git a/central-dashboard/Dockerfile b/central-dashboard/Dockerfile new file mode 100644 index 00000000..878ed4a1 --- /dev/null +++ b/central-dashboard/Dockerfile @@ -0,0 +1,52 @@ +# 多阶段构建 +# 第一阶段将 Spring Boot 应用程序进行拆分 + +FROM centralx/openjdk:17 as builder + +ARG STUDIO_VERSION + +# 创建工作目录及常用子目录 +WORKDIR /workspace + +# 复制应用到工作目录 +COPY central-dashboard-${STUDIO_VERSION}.jar application.jar + +# 使用 Spring Boot 工具对应用进行分层 +RUN java -Djarmode=layertools -jar application.jar extract + + +# 第二阶段,正式构建应用 +FROM centralx/openjdk:17 +MAINTAINER Alan Yeh +LABEL vender=CentralX \ + license="The MIT License" \ + name="Central Dashboard" + +# 创建工作目录及常用子目录 +WORKDIR /workspace +RUN mkdir /workspace/config && mkdir /workspace/logs && mkdir /workspace/data + +# 将上一阶段提取的应用分层复制到工作目录 +COPY --from=builder /workspace/dependencies ./ +COPY --from=builder /workspace/spring-boot-loader ./ +COPY --from=builder /workspace/snapshot-dependencies ./ +COPY --from=builder /workspace/application ./ + +# 添加 runner 用户,并对并授权 +RUN adduser runner -D -u 1000 && chown -R runner:runner /workspace + +# 切换到非 root 用户启动程序 +USER runner + +# 最大内存 +ENV JVM_MAX_HEAP 768m +# 最小内存 +ENV JVM_MIN_HEAP 256m +# 其它 JVM 参数 +ENV JVM_OPTS "-XX:+UseG1GC" +# 启动参数 +ENV BOOTSTRAP_OPTS "-Djava.security.egd=file:/dev/./urandom -Dspring.config.additional-location=optional:./config/" + +EXPOSE 3100 +VOLUME ["/workspace/config", "/workspace/logs", "/workspace/data"] +ENTRYPOINT ["sh", "-c", "java -Xms$JVM_MIN_HEAP -Xmx$JVM_MAX_HEAP $JVM_OPTS $BOOTSTRAP_OPTS org.springframework.boot.loader.JarLauncher"] \ No newline at end of file diff --git a/central-gateway/Dockerfile b/central-gateway/Dockerfile index ea082ed4..d19b2a99 100644 --- a/central-gateway/Dockerfile +++ b/central-gateway/Dockerfile @@ -1,23 +1,52 @@ -FROM openjdk:17 -MAINTAINER Alan Yeh "alan@yeh.cn" +# 多阶段构建 +# 第一阶段将 Spring Boot 应用程序进行拆分 -ENV TIME_ZONE="Asia/Shanghai" -RUN set -x \ - && ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo '$TIME_ZONE' > /etc/timezone \ - && useradd --create-home app +FROM centralx/openjdk:17 as builder -# 使用非 root 用户执行程序 -USER app +ARG STUDIO_VERSION -# 暴露端口 -EXPOSE 8080 +# 创建工作目录及常用子目录 +WORKDIR /workspace -# 在用户目录下启动应用 -WORKDIR ~ -ARG JAR_FILE -ADD target/${JAR_FILE} ./app.jar -ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dspring.config.additional-location=optional:./config/bootstrap.yml", "-jar", "app.jar"] +# 复制应用到工作目录 +COPY central-gateway-${STUDIO_VERSION}.jar application.jar -# 暴露卷 -VOLUME ./config -VOLUME ./data \ No newline at end of file +# 使用 Spring Boot 工具对应用进行分层 +RUN java -Djarmode=layertools -jar application.jar extract + + +# 第二阶段,正式构建应用 +FROM centralx/openjdk:17 +MAINTAINER Alan Yeh +LABEL vender=CentralX \ + license="The MIT License" \ + name="Central Gateway" + +# 创建工作目录及常用子目录 +WORKDIR /workspace +RUN mkdir /workspace/config && mkdir /workspace/logs && mkdir /workspace/data + +# 将上一阶段提取的应用分层复制到工作目录 +COPY --from=builder /workspace/dependencies ./ +COPY --from=builder /workspace/spring-boot-loader ./ +COPY --from=builder /workspace/snapshot-dependencies ./ +COPY --from=builder /workspace/application ./ + +# 添加 runner 用户,并对并授权 +RUN adduser runner -D -u 1000 && chown -R runner:runner /workspace + +# 切换到非 root 用户启动程序 +USER runner + +# 最大内存 +ENV JVM_MAX_HEAP 768m +# 最小内存 +ENV JVM_MIN_HEAP 256m +# 其它 JVM 参数 +ENV JVM_OPTS "-XX:+UseG1GC" +# 启动参数 +ENV BOOTSTRAP_OPTS "-Djava.security.egd=file:/dev/./urandom -Dspring.config.additional-location=optional:./config/" + +EXPOSE 3000 +VOLUME ["/workspace/config", "/workspace/logs", "/workspace/data"] +ENTRYPOINT ["sh", "-c", "java -Xms$JVM_MIN_HEAP -Xmx$JVM_MAX_HEAP $JVM_OPTS $BOOTSTRAP_OPTS org.springframework.boot.loader.JarLauncher"] \ No newline at end of file diff --git a/central-gateway/pom.xml b/central-gateway/pom.xml index 48f8d54b..cebef9b4 100644 --- a/central-gateway/pom.xml +++ b/central-gateway/pom.xml @@ -100,20 +100,6 @@ - - - - com.spotify - dockerfile-maven-plugin - - Dockerfile - deploy.central-x.com/central-gateway - ${project.version} - - ${project.build.finalName}.${project.packaging} - - - diff --git a/central-logging/Dockerfile b/central-logging/Dockerfile new file mode 100644 index 00000000..16551b33 --- /dev/null +++ b/central-logging/Dockerfile @@ -0,0 +1,52 @@ +# 多阶段构建 +# 第一阶段将 Spring Boot 应用程序进行拆分 + +FROM centralx/openjdk:17 as builder + +ARG STUDIO_VERSION + +# 创建工作目录及常用子目录 +WORKDIR /workspace + +# 复制应用到工作目录 +COPY central-logging-${STUDIO_VERSION}.jar application.jar + +# 使用 Spring Boot 工具对应用进行分层 +RUN java -Djarmode=layertools -jar application.jar extract + + +# 第二阶段,正式构建应用 +FROM centralx/openjdk:17 +MAINTAINER Alan Yeh +LABEL vender=CentralX \ + license="The MIT License" \ + name="Central Logging" + +# 创建工作目录及常用子目录 +WORKDIR /workspace +RUN mkdir /workspace/config && mkdir /workspace/logs && mkdir /workspace/data + +# 将上一阶段提取的应用分层复制到工作目录 +COPY --from=builder /workspace/dependencies ./ +COPY --from=builder /workspace/spring-boot-loader ./ +COPY --from=builder /workspace/snapshot-dependencies ./ +COPY --from=builder /workspace/application ./ + +# 添加 runner 用户,并对并授权 +RUN adduser runner -D -u 1000 && chown -R runner:runner /workspace + +# 切换到非 root 用户启动程序 +USER runner + +# 最大内存 +ENV JVM_MAX_HEAP 768m +# 最小内存 +ENV JVM_MIN_HEAP 256m +# 其它 JVM 参数 +ENV JVM_OPTS "-XX:+UseG1GC" +# 启动参数 +ENV BOOTSTRAP_OPTS "-Djava.security.egd=file:/dev/./urandom -Dspring.config.additional-location=optional:./config/" + +EXPOSE 3400 +VOLUME ["/workspace/config", "/workspace/logs", "/workspace/data"] +ENTRYPOINT ["sh", "-c", "java -Xms$JVM_MIN_HEAP -Xmx$JVM_MAX_HEAP $JVM_OPTS $BOOTSTRAP_OPTS org.springframework.boot.loader.JarLauncher"] \ No newline at end of file diff --git a/central-multicast/Dockerfile b/central-multicast/Dockerfile new file mode 100644 index 00000000..80fea322 --- /dev/null +++ b/central-multicast/Dockerfile @@ -0,0 +1,52 @@ +# 多阶段构建 +# 第一阶段将 Spring Boot 应用程序进行拆分 + +FROM centralx/openjdk:17 as builder + +ARG STUDIO_VERSION + +# 创建工作目录及常用子目录 +WORKDIR /workspace + +# 复制应用到工作目录 +COPY central-multicast-${STUDIO_VERSION}.jar application.jar + +# 使用 Spring Boot 工具对应用进行分层 +RUN java -Djarmode=layertools -jar application.jar extract + + +# 第二阶段,正式构建应用 +FROM centralx/openjdk:17 +MAINTAINER Alan Yeh +LABEL vender=CentralX \ + license="The MIT License" \ + name="Central Multicast" + +# 创建工作目录及常用子目录 +WORKDIR /workspace +RUN mkdir /workspace/config && mkdir /workspace/logs && mkdir /workspace/data + +# 将上一阶段提取的应用分层复制到工作目录 +COPY --from=builder /workspace/dependencies ./ +COPY --from=builder /workspace/spring-boot-loader ./ +COPY --from=builder /workspace/snapshot-dependencies ./ +COPY --from=builder /workspace/application ./ + +# 添加 runner 用户,并对并授权 +RUN adduser runner -D -u 1000 && chown -R runner:runner /workspace + +# 切换到非 root 用户启动程序 +USER runner + +# 最大内存 +ENV JVM_MAX_HEAP 768m +# 最小内存 +ENV JVM_MIN_HEAP 256m +# 其它 JVM 参数 +ENV JVM_OPTS "-XX:+UseG1GC" +# 启动参数 +ENV BOOTSTRAP_OPTS "-Djava.security.egd=file:/dev/./urandom -Dspring.config.additional-location=optional:./config/" + +EXPOSE 3600 +VOLUME ["/workspace/config", "/workspace/logs", "/workspace/data"] +ENTRYPOINT ["sh", "-c", "java -Xms$JVM_MIN_HEAP -Xmx$JVM_MAX_HEAP $JVM_OPTS $BOOTSTRAP_OPTS org.springframework.boot.loader.JarLauncher"] \ No newline at end of file diff --git a/central-provider/Dockerfile b/central-provider/Dockerfile index ea082ed4..1c2a9876 100644 --- a/central-provider/Dockerfile +++ b/central-provider/Dockerfile @@ -1,23 +1,52 @@ -FROM openjdk:17 -MAINTAINER Alan Yeh "alan@yeh.cn" +# 多阶段构建 +# 第一阶段将 Spring Boot 应用程序进行拆分 -ENV TIME_ZONE="Asia/Shanghai" -RUN set -x \ - && ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo '$TIME_ZONE' > /etc/timezone \ - && useradd --create-home app +FROM centralx/openjdk:17 as builder -# 使用非 root 用户执行程序 -USER app +ARG STUDIO_VERSION -# 暴露端口 -EXPOSE 8080 +# 创建工作目录及常用子目录 +WORKDIR /workspace -# 在用户目录下启动应用 -WORKDIR ~ -ARG JAR_FILE -ADD target/${JAR_FILE} ./app.jar -ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dspring.config.additional-location=optional:./config/bootstrap.yml", "-jar", "app.jar"] +# 复制应用到工作目录 +COPY central-provider-${STUDIO_VERSION}.jar application.jar -# 暴露卷 -VOLUME ./config -VOLUME ./data \ No newline at end of file +# 使用 Spring Boot 工具对应用进行分层 +RUN java -Djarmode=layertools -jar application.jar extract + + +# 第二阶段,正式构建应用 +FROM centralx/openjdk:17 +MAINTAINER Alan Yeh +LABEL vender=CentralX \ + license="The MIT License" \ + name="Central Provider" + +# 创建工作目录及常用子目录 +WORKDIR /workspace +RUN mkdir /workspace/config && mkdir /workspace/logs && mkdir /workspace/data + +# 将上一阶段提取的应用分层复制到工作目录 +COPY --from=builder /workspace/dependencies ./ +COPY --from=builder /workspace/spring-boot-loader ./ +COPY --from=builder /workspace/snapshot-dependencies ./ +COPY --from=builder /workspace/application ./ + +# 添加 runner 用户,并对并授权 +RUN adduser runner -D -u 1000 && chown -R runner:runner /workspace + +# 切换到非 root 用户启动程序 +USER runner + +# 最大内存 +ENV JVM_MAX_HEAP 768m +# 最小内存 +ENV JVM_MIN_HEAP 256m +# 其它 JVM 参数 +ENV JVM_OPTS "-XX:+UseG1GC" +# 启动参数 +ENV BOOTSTRAP_OPTS "-Djava.security.egd=file:/dev/./urandom -Dspring.config.additional-location=optional:./config/" + +EXPOSE 3300 +VOLUME ["/workspace/config", "/workspace/logs", "/workspace/data"] +ENTRYPOINT ["sh", "-c", "java -Xms$JVM_MIN_HEAP -Xmx$JVM_MAX_HEAP $JVM_OPTS $BOOTSTRAP_OPTS org.springframework.boot.loader.JarLauncher"] \ No newline at end of file diff --git a/central-security/Dockerfile b/central-security/Dockerfile new file mode 100644 index 00000000..43cdb80b --- /dev/null +++ b/central-security/Dockerfile @@ -0,0 +1,52 @@ +# 多阶段构建 +# 第一阶段将 Spring Boot 应用程序进行拆分 + +FROM centralx/openjdk:17 as builder + +ARG STUDIO_VERSION + +# 创建工作目录及常用子目录 +WORKDIR /workspace + +# 复制应用到工作目录 +COPY central-security-${STUDIO_VERSION}.jar application.jar + +# 使用 Spring Boot 工具对应用进行分层 +RUN java -Djarmode=layertools -jar application.jar extract + + +# 第二阶段,正式构建应用 +FROM centralx/openjdk:17 +MAINTAINER Alan Yeh +LABEL vender=CentralX \ + license="The MIT License" \ + name="Central Security" + +# 创建工作目录及常用子目录 +WORKDIR /workspace +RUN mkdir /workspace/config && mkdir /workspace/logs && mkdir /workspace/data + +# 将上一阶段提取的应用分层复制到工作目录 +COPY --from=builder /workspace/dependencies ./ +COPY --from=builder /workspace/spring-boot-loader ./ +COPY --from=builder /workspace/snapshot-dependencies ./ +COPY --from=builder /workspace/application ./ + +# 添加 runner 用户,并对并授权 +RUN adduser runner -D -u 1000 && chown -R runner:runner /workspace + +# 切换到非 root 用户启动程序 +USER runner + +# 最大内存 +ENV JVM_MAX_HEAP 768m +# 最小内存 +ENV JVM_MIN_HEAP 256m +# 其它 JVM 参数 +ENV JVM_OPTS "-XX:+UseG1GC" +# 启动参数 +ENV BOOTSTRAP_OPTS "-Djava.security.egd=file:/dev/./urandom -Dspring.config.additional-location=optional:./config/" + +EXPOSE 3200 +VOLUME ["/workspace/config", "/workspace/logs", "/workspace/data"] +ENTRYPOINT ["sh", "-c", "java -Xms$JVM_MIN_HEAP -Xmx$JVM_MAX_HEAP $JVM_OPTS $BOOTSTRAP_OPTS org.springframework.boot.loader.JarLauncher"] \ No newline at end of file diff --git a/central-storage/Dockerfile b/central-storage/Dockerfile new file mode 100644 index 00000000..c4dcdb81 --- /dev/null +++ b/central-storage/Dockerfile @@ -0,0 +1,52 @@ +# 多阶段构建 +# 第一阶段将 Spring Boot 应用程序进行拆分 + +FROM centralx/openjdk:17 as builder + +ARG STUDIO_VERSION + +# 创建工作目录及常用子目录 +WORKDIR /workspace + +# 复制应用到工作目录 +COPY central-storage-${STUDIO_VERSION}.jar application.jar + +# 使用 Spring Boot 工具对应用进行分层 +RUN java -Djarmode=layertools -jar application.jar extract + + +# 第二阶段,正式构建应用 +FROM centralx/openjdk:17 +MAINTAINER Alan Yeh +LABEL vender=CentralX \ + license="The MIT License" \ + name="Central Storage" + +# 创建工作目录及常用子目录 +WORKDIR /workspace +RUN mkdir /workspace/config && mkdir /workspace/logs && mkdir /workspace/data + +# 将上一阶段提取的应用分层复制到工作目录 +COPY --from=builder /workspace/dependencies ./ +COPY --from=builder /workspace/spring-boot-loader ./ +COPY --from=builder /workspace/snapshot-dependencies ./ +COPY --from=builder /workspace/application ./ + +# 添加 runner 用户,并对并授权 +RUN adduser runner -D -u 1000 && chown -R runner:runner /workspace + +# 切换到非 root 用户启动程序 +USER runner + +# 最大内存 +ENV JVM_MAX_HEAP 768m +# 最小内存 +ENV JVM_MIN_HEAP 256m +# 其它 JVM 参数 +ENV JVM_OPTS "-XX:+UseG1GC" +# 启动参数 +ENV BOOTSTRAP_OPTS "-Djava.security.egd=file:/dev/./urandom -Dspring.config.additional-location=optional:./config/" + +EXPOSE 3500 +VOLUME ["/workspace/config", "/workspace/logs", "/workspace/data"] +ENTRYPOINT ["sh", "-c", "java -Xms$JVM_MIN_HEAP -Xmx$JVM_MAX_HEAP $JVM_OPTS $BOOTSTRAP_OPTS org.springframework.boot.loader.JarLauncher"] \ No newline at end of file diff --git a/central-studio-lib/src/main/java/central/gateway/GatewayProperties.java b/central-studio-lib/src/main/java/central/gateway/GatewayProperties.java index 62f23fb4..a0bb2b43 100644 --- a/central-studio-lib/src/main/java/central/gateway/GatewayProperties.java +++ b/central-studio-lib/src/main/java/central/gateway/GatewayProperties.java @@ -41,5 +41,5 @@ public class GatewayProperties { /** * 访问地址 */ - private String url = "http://127.0.0.1:3000"; + private String url = "http://central-gateway"; } diff --git a/central-studio-lib/src/main/java/central/logging/LoggingProperties.java b/central-studio-lib/src/main/java/central/logging/LoggingProperties.java index 407b3595..9275a5b3 100644 --- a/central-studio-lib/src/main/java/central/logging/LoggingProperties.java +++ b/central-studio-lib/src/main/java/central/logging/LoggingProperties.java @@ -41,5 +41,5 @@ public class LoggingProperties { /** * 访问地址 */ - private String url = "http://127.0.0.1:3400"; + private String url = "http://central-gateway"; } diff --git a/central-studio-lib/src/main/java/central/multicast/MulticastProperties.java b/central-studio-lib/src/main/java/central/multicast/MulticastProperties.java index 8c1ed973..ede36b9d 100644 --- a/central-studio-lib/src/main/java/central/multicast/MulticastProperties.java +++ b/central-studio-lib/src/main/java/central/multicast/MulticastProperties.java @@ -41,5 +41,5 @@ public class MulticastProperties { /** * 访问地址 */ - private String url = "http://127.0.0.1:3600"; + private String url = "http://central-multicast"; } diff --git a/central-studio-lib/src/main/java/central/provider/ProviderProperties.java b/central-studio-lib/src/main/java/central/provider/ProviderProperties.java index fd33db7d..f2da0f4f 100644 --- a/central-studio-lib/src/main/java/central/provider/ProviderProperties.java +++ b/central-studio-lib/src/main/java/central/provider/ProviderProperties.java @@ -45,7 +45,7 @@ public class ProviderProperties { /** * 访问地址 */ - private String url = "http://127.0.0.1:3300"; + private String url = "http://central-provider"; /** * 数据 diff --git a/central-studio-lib/src/main/java/central/security/SecurityProperties.java b/central-studio-lib/src/main/java/central/security/SecurityProperties.java index d79b85a7..7ed48d87 100644 --- a/central-studio-lib/src/main/java/central/security/SecurityProperties.java +++ b/central-studio-lib/src/main/java/central/security/SecurityProperties.java @@ -41,5 +41,5 @@ public class SecurityProperties { /** * 访问地址 */ - private String url = "http://127.0.0.1:3200"; + private String url = "http://central-security"; } diff --git a/central-studio-lib/src/main/java/central/storage/StorageProperties.java b/central-studio-lib/src/main/java/central/storage/StorageProperties.java index 7a5043e4..8ee63580 100644 --- a/central-studio-lib/src/main/java/central/storage/StorageProperties.java +++ b/central-studio-lib/src/main/java/central/storage/StorageProperties.java @@ -41,5 +41,5 @@ public class StorageProperties { /** * 访问地址 */ - private String url = "http://127.0.0.1:3500"; + private String url = "http://central-storage"; } diff --git a/docker-bake.hcl b/docker-bake.hcl new file mode 100644 index 00000000..49b9959f --- /dev/null +++ b/docker-bake.hcl @@ -0,0 +1,127 @@ +############################################################################ +# Global inheritable target +############################################################################ +group "default" { + targets = [ + "central-gateway", + "central-dashboard", + "central-security", + "central-provider", + "central-logging", + "central-storage", + "central-multicast", + ] +} + +############################################################################ +# Global inheritable target +############################################################################ +target "_platforms" { + platforms = [ + "linux/arm64", + "linux/amd64" + ] +} + +variable "STUDIO_VERSION" { + default = "1.0.x-SNAPSHOT" +} + +############################################################################ +# Central Studio +############################################################################ +target "central-gateway" { + inherits = ["_platforms"] + context = "./central-gateway/target" + dockerfile = "../Dockerfile" + args = { + STUDIO_VERSION = "${STUDIO_VERSION}" + } + tags = [ + "docker.io/centralx/central-gateway:${STUDIO_VERSION}" + ] +} + +target "central-dashboard" { + inherits = ["_platforms"] + context = "./central-dashboard/target" + dockerfile = "../Dockerfile" + args = { + STUDIO_VERSION = "${STUDIO_VERSION}" + } + tags = [ + "docker.io/centralx/central-dashboard:${STUDIO_VERSION}" + ] +} + +target "central-security" { + inherits = ["_platforms"] + context = "./central-security/target" + dockerfile = "../Dockerfile" + args = { + STUDIO_VERSION = "${STUDIO_VERSION}" + } + tags = [ + "docker.io/centralx/central-security:${STUDIO_VERSION}" + ] +} + +target "central-provider" { + inherits = ["_platforms"] + context = "./central-provider/target" + dockerfile = "../Dockerfile" + args = { + STUDIO_VERSION = "${STUDIO_VERSION}" + } + tags = [ + "docker.io/centralx/central-provider:${STUDIO_VERSION}" + ] +} + +target "central-logging" { + inherits = ["_platforms"] + context = "./central-logging/target" + dockerfile = "../Dockerfile" + args = { + STUDIO_VERSION = "${STUDIO_VERSION}" + } + tags = [ + "docker.io/centralx/central-logging:${STUDIO_VERSION}" + ] +} + +target "central-logging" { + inherits = ["_platforms"] + context = "./central-logging/target" + dockerfile = "../Dockerfile" + args = { + STUDIO_VERSION = "${STUDIO_VERSION}" + } + tags = [ + "docker.io/centralx/central-logging:${STUDIO_VERSION}" + ] +} + +target "central-storage" { + inherits = ["_platforms"] + context = "./central-storage/target" + dockerfile = "../Dockerfile" + args = { + STUDIO_VERSION = "${STUDIO_VERSION}" + } + tags = [ + "docker.io/centralx/central-storage:${STUDIO_VERSION}" + ] +} + +target "central-multicast" { + inherits = ["_platforms"] + context = "./central-multicast/target" + dockerfile = "../Dockerfile" + args = { + STUDIO_VERSION = "${STUDIO_VERSION}" + } + tags = [ + "docker.io/centralx/central-multicast:${STUDIO_VERSION}" + ] +} \ No newline at end of file