diff --git a/.gitea/workflows/docker_build.yaml b/.gitea/workflows/docker_build.yaml index 4dfae4a..dc66571 100644 --- a/.gitea/workflows/docker_build.yaml +++ b/.gitea/workflows/docker_build.yaml @@ -26,12 +26,42 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v3 + - name: Prepare BuildKit config with custom CA + # Definiere den Hostnamen (ggf. mit Port) + env: + REGISTRY_HOST: "harbor.lan" + REGISTRY_CA_CERT: ${{ secrets.REGISTRY_CA_CERT }} + run: | + # 1. Erstelle ein temporäres Verzeichnis für unsere Dateien + CONFIG_DIR_PATH="${{ runner.temp }}/buildx-config" + mkdir -p "${CONFIG_DIR_PATH}" + + # 2. Definiere die Pfade für die beiden Dateien + CERT_FILE_PATH="${CONFIG_DIR_PATH}/ca.crt" + CONFIG_FILE_PATH="${CONFIG_DIR_PATH}/buildkitd.toml" + + # 3. Schreibe das Zertifikat in die Zertifikatsdatei + echo "${REGISTRY_CA_CERT}" > "${CERT_FILE_PATH}" + echo "Zertifikat geschrieben nach ${CERT_FILE_PATH}" + + # 4. Erstelle die TOML-Konfigurationsdatei + # Diese muss den *absoluten Pfad* zur Zertifikatsdatei enthalten. + cat << EOF > "${CONFIG_FILE_PATH}" + [registry."${REGISTRY_HOST}"] + ca = ["${CERT_FILE_PATH}"] + EOF + + echo "BuildKit-Konfiguration geschrieben nach ${CONFIG_FILE_PATH}" + + # 5. Mache den Pfad zur TOML-Datei für den nächsten Schritt verfügbar + echo "BUILDKIT_CONFIG=${CONFIG_FILE_PATH}" >> $GITEA_ENV # Für Gitea + # Für GitHub Actions wäre es: + # echo "BUILDKIT_CONFIG=${CONFIG_FILE_PATH}" >> $GITHUB_ENV + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: - config-inline: | - [registry."harbor.lan"] - ca = ["""${{ secrets.REGISTRY_CA_CERT }}"""] + config: ${{ env.BUILDKIT_CONFIG }} - name: Build and push image uses: docker/build-push-action@v6