From 04269c1f7d1307dde86e8b3151b9303fe44dd7ee Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Wed, 16 Apr 2025 07:02:18 +0200 Subject: [PATCH] WIP Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at> --- .gitlab-ci.yml | 38 +++++++----------------- dbrepo-analyse-service/Dockerfile | 2 +- dbrepo-dashboard-service/Dockerfile | 2 +- dbrepo-dashboard-service/init.Dockerfile | 2 +- dbrepo-dashboard-ui/Dockerfile | 2 +- dbrepo-data-service/Dockerfile | 6 ++-- dbrepo-metadata-service/Dockerfile | 6 ++-- dbrepo-search-service/Dockerfile | 2 +- dbrepo-search-service/init.Dockerfile | 2 +- dbrepo-ui/Dockerfile | 4 +-- docker-compose.yml | 21 ------------- grafana/grafana.ini | 5 ---- 12 files changed, 24 insertions(+), 68 deletions(-) delete mode 100644 grafana/grafana.ini diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2d5f3a4282..67c44b1a2d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -524,7 +524,7 @@ release-images: image: docker:${DOCKER_VERSION}-dind variables: BUILD_ARGS: --network=host - COMPOSE_BUILD_ARGS: -q --parallel + BAKE_ARGS: --allow=network.host --builder multiarch --load dependencies: - clean-images - test-analyse-service @@ -538,37 +538,19 @@ release-images: - tags - dev before_script: + - "apk add --no-cache make" - "docker logout ${CI_REGISTRY_URL}" - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}" - "docker logout ${CI_REGISTRY2_URL}" - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}" - script: - - docker build $BUILD_ARGS -t dbrepo-core:build --target build ./lib/java/dbrepo-core - - docker build $BUILD_ARGS -t dbrepo-data-service:build --target build ./dbrepo-data-service - - docker build $BUILD_ARGS -t dbrepo-metadata-service:build --target build ./dbrepo-metadata-service - - docker compose build $COMPOSE_BUILD_ARGS - - docker tag dbrepo-analyse-service:latest "${CI_REGISTRY2_URL}/analyse-service:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-auth-service-init:latest "${CI_REGISTRY2_URL}/auth-service-init:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-dashboard-service:latest "${CI_REGISTRY2_URL}/dashboard-service:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-dashboard-service-init:latest "${CI_REGISTRY2_URL}/dashboard-service-init:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-dashboard-ui:latest "${CI_REGISTRY2_URL}/dashboard-ui:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-data-service:latest "${CI_REGISTRY2_URL}/data-service:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-metadata-service:latest "${CI_REGISTRY2_URL}/metadata-service:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-search-service:latest "${CI_REGISTRY2_URL}/search-service:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-search-service-init:latest "${CI_REGISTRY2_URL}/search-service-init:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-storage-service-init:latest "${CI_REGISTRY2_URL}/storage-service-init:${APP_VERSION}${BUILD_VERSION}" - - docker tag dbrepo-ui:latest "${CI_REGISTRY2_URL}/ui:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/analyse-service:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/auth-service-init:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/dashboard-service:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/dashboard-service-init:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/dashboard-ui:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/data-service:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/metadata-service:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/search-service:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/search-service-init:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/storage-service-init:${APP_VERSION}${BUILD_VERSION}" - - docker push "${CI_REGISTRY2_URL}/ui:${APP_VERSION}${BUILD_VERSION}" + - docker buildx create --name multiarch --driver docker-container --use + script: + - docker buildx build $BUILD_ARGS --platform=linux/amd64 -t dbrepo-core:build --target build ./lib/java/dbrepo-core + - docker buildx bake $BAKE_ARGS --platform=linux/amd64 + - REPOSITORY_URL=$CI_REGISTRY_URL make release-images + - docker buildx build $BUILD_ARGS --platform=linux/arm64 -t dbrepo-core:build --target build ./lib/java/dbrepo-core + - docker buildx bake $BAKE_ARGS --platform=linux/arm64 + - REPOSITORY_URL=$CI_REGISTRY2_URL make release-images release-helm: stage: release diff --git a/dbrepo-analyse-service/Dockerfile b/dbrepo-analyse-service/Dockerfile index 26ea3ce65c..df313ec934 100644 --- a/dbrepo-analyse-service/Dockerfile +++ b/dbrepo-analyse-service/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-alpine3.21 +FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" RUN apk --no-cache add \ diff --git a/dbrepo-dashboard-service/Dockerfile b/dbrepo-dashboard-service/Dockerfile index e739245d30..62caad802f 100644 --- a/dbrepo-dashboard-service/Dockerfile +++ b/dbrepo-dashboard-service/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-alpine3.21 +FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" RUN apk add --no-cache \ diff --git a/dbrepo-dashboard-service/init.Dockerfile b/dbrepo-dashboard-service/init.Dockerfile index 487e3e280e..4d00c467cd 100644 --- a/dbrepo-dashboard-service/init.Dockerfile +++ b/dbrepo-dashboard-service/init.Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-alpine3.21 +FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" RUN apk add --no-cache \ diff --git a/dbrepo-dashboard-ui/Dockerfile b/dbrepo-dashboard-ui/Dockerfile index daf9ef46dd..346f800c8c 100644 --- a/dbrepo-dashboard-ui/Dockerfile +++ b/dbrepo-dashboard-ui/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.io/bitnami/grafana:11.5.3 AS runtime +FROM --platform=$BUILDPLATFORM bitnami/grafana:11.5.3 AS runtime LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" COPY --chown=grafana:grafana ./grafana.ini ./conf/grafana.ini diff --git a/dbrepo-data-service/Dockerfile b/dbrepo-data-service/Dockerfile index 7468f1c568..769014f61b 100644 --- a/dbrepo-data-service/Dockerfile +++ b/dbrepo-data-service/Dockerfile @@ -1,9 +1,9 @@ ###### FIRST STAGE ###### -FROM dbrepo-core:build AS dependency +FROM --platform=$BUILDPLATFORM dbrepo-core:build AS dependency LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" ###### SECOND STAGE ###### -FROM maven:3-amazoncorretto-17 AS build +FROM --platform=$BUILDPLATFORM maven:3-amazoncorretto-17 AS build LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" COPY ./pom.xml ./ @@ -21,7 +21,7 @@ COPY ./services ./services RUN mvn -fn clean package -DskipTests ###### THIRD STAGE ###### -FROM amazoncorretto:17-alpine3.19 AS runtime +FROM --platform=$BUILDPLATFORM amazoncorretto:17-alpine3.19 AS runtime LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" RUN apk add --no-cache curl bash jq diff --git a/dbrepo-metadata-service/Dockerfile b/dbrepo-metadata-service/Dockerfile index 8d01865d85..f034640e6a 100644 --- a/dbrepo-metadata-service/Dockerfile +++ b/dbrepo-metadata-service/Dockerfile @@ -1,9 +1,9 @@ ###### FIRST STAGE ###### -FROM dbrepo-core:build AS dependency +FROM --platform=$BUILDPLATFORM dbrepo-core:build AS dependency LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" ###### SECOND STAGE ###### -FROM maven:3-amazoncorretto-17 AS build +FROM --platform=$BUILDPLATFORM maven:3-amazoncorretto-17 AS build LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" COPY ./pom.xml ./ @@ -22,7 +22,7 @@ COPY ./services ./services RUN mvn -fn clean package -DskipTests ###### THIRD STAGE ###### -FROM amazoncorretto:17-alpine3.19 AS runtime +FROM --platform=$BUILDPLATFORM amazoncorretto:17-alpine3.19 AS runtime LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" RUN apk add --no-cache curl bash jq diff --git a/dbrepo-search-service/Dockerfile b/dbrepo-search-service/Dockerfile index 0366024576..1d0862a9e5 100644 --- a/dbrepo-search-service/Dockerfile +++ b/dbrepo-search-service/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-alpine3.21 +FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" RUN apk add --no-cache \ diff --git a/dbrepo-search-service/init.Dockerfile b/dbrepo-search-service/init.Dockerfile index cf4cb94d85..2099df48cc 100644 --- a/dbrepo-search-service/init.Dockerfile +++ b/dbrepo-search-service/init.Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-alpine3.21 +FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21 LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at" RUN apk add --no-cache \ diff --git a/dbrepo-ui/Dockerfile b/dbrepo-ui/Dockerfile index 53928c4998..966b7dbb3d 100644 --- a/dbrepo-ui/Dockerfile +++ b/dbrepo-ui/Dockerfile @@ -1,5 +1,5 @@ ###### FIRST STAGE ###### -FROM oven/bun:1.1.40-alpine AS build +FROM --platform=$BUILDPLATFORM oven/bun:1.1.40-alpine AS build WORKDIR /app @@ -27,7 +27,7 @@ COPY ./nuxt.config.ts ./nuxt.config.ts RUN bun run build ###### SECOND STAGE ###### -FROM node:22.9.0-alpine3.20 AS runtime +FROM --platform=$BUILDPLATFORM node:22.9.0-alpine3.20 AS runtime ARG APP_VERSION="latest" ARG COMMIT="" diff --git a/docker-compose.yml b/docker-compose.yml index 69db510315..c4c990a8cc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -88,7 +88,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-micro-hm - platform: linux/amd64 logging: driver: json-file @@ -112,7 +111,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-micro-hm - platform: linux/amd64 logging: driver: json-file @@ -135,7 +133,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-micro - platform: linux/amd64 logging: driver: json-file @@ -172,7 +169,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-medium - platform: linux/amd64 depends_on: dbrepo-identity-service: condition: service_healthy @@ -199,7 +195,6 @@ services: SYSTEM_PASSWORD: ${SYSTEM_PASSWORD:-admin} deploy: <<: *resources-nano - platform: linux/amd64 depends_on: dbrepo-auth-service: condition: service_healthy @@ -263,7 +258,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-small - platform: linux/amd64 depends_on: dbrepo-auth-service: condition: service_healthy @@ -308,7 +302,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-micro - platform: linux/amd64 logging: driver: json-file @@ -337,7 +330,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-micro - platform: linux/amd64 logging: driver: json-file @@ -355,7 +347,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-medium - platform: linux/amd64 logging: driver: json-file @@ -385,7 +376,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-micro - platform: linux/amd64 logging: driver: json-file @@ -418,7 +408,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-micro - platform: linux/amd64 depends_on: dbrepo-search-service: condition: service_healthy @@ -441,7 +430,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-nano - platform: linux/amd64 depends_on: dbrepo-analyse-service: condition: service_healthy @@ -483,7 +471,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-nano - platform: linux/amd64 logging: driver: json-file @@ -506,7 +493,6 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" deploy: <<: *resources-nano - platform: linux/amd64 depends_on: dbrepo-search-db: condition: service_healthy @@ -533,7 +519,6 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" deploy: <<: *resources-nano - platform: linux/amd64 depends_on: dbrepo-dashboard-ui: condition: service_healthy @@ -558,7 +543,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-nano - platform: linux/amd64 logging: driver: json-file @@ -575,7 +559,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-nano - platform: linux/amd64 logging: driver: json-file @@ -595,7 +578,6 @@ services: STORAGE_ENDPOINT: ${STORAGE_ENDPOINT:-http://storage-service:9000} deploy: <<: *resources-nano - platform: linux/amd64 depends_on: dbrepo-storage-service: condition: service_healthy @@ -648,7 +630,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-large - platform: linux/amd64 depends_on: dbrepo-data-db: condition: service_healthy @@ -681,7 +662,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-nano - platform: linux/amd64 extra_hosts: - "localhost:host-gateway" logging: @@ -708,7 +688,6 @@ services: <<: *healthcheck-params deploy: <<: *resources-micro - platform: linux/amd64 depends_on: dbrepo-dashboard-ui: condition: service_healthy diff --git a/grafana/grafana.ini b/grafana/grafana.ini deleted file mode 100644 index df8b9eb1b4..0000000000 --- a/grafana/grafana.ini +++ /dev/null @@ -1,5 +0,0 @@ -[server] -domain = grafana -root_url = http://grafana/grafana -serve_from_sub_path = true - -- GitLab