diff --git a/.gitea/worflows/build_docker.yaml b/.gitea/worflows/build_docker.yaml new file mode 100644 index 0000000..6d5855e --- /dev/null +++ b/.gitea/worflows/build_docker.yaml @@ -0,0 +1,98 @@ +name: Create Docker Image +run-name: ${{ gitea.actor }} Building Docker Image 🐳 +on: [push] +env: + VERSION: latest + DOCKER_HOST: tcp://127.0.0.1:2375 + +jobs: + build: + strategy: + matrix: + arch: + - x86_64 + - arm64 + + name: Build Docker Image + runs-on: docker-${{ matrix.arch }} + container: + image: docker:dind + privileged: true + env: + ARCH: ${{ matrix.arch }} + VERSIONARCH: ${{ env.VERSION }}-${{ env.ARCH }} + + steps: + - name: Environment Setup + run: | + # If we have a proxy use it + if [ -n "${HTTP_PROXY}" ]; then echo "HTTP PROXY [${HTTP_PROXY}]"; sed -i -e s'/https/http/' /etc/apk/repositories; fi + # Some pre-reqs + apk add git curl nodejs + # Start docker + ( dockerd --host=tcp://0.0.0.0:2375 --tls=false & ) && sleep 3 + ## Some debugging info + # docker info && docker version + # env|sort + + - name: Registry FQDN Setup + id: registry + run: | + registry=${{ github.server_url }} + echo "registry=${registry##http*://}" >> "$GITHUB_OUTPUT" + + - name: Container Registry Login + uses: docker/login-action@v2 + with: + registry: ${{ steps.registry.outputs.registry }} + username: ${{ gitea.actor }} + password: ${{ secrets.PKG_WRITE_TOKEN }} + + - name: Code Checkout + uses: actions/checkout@v4 + + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 + with: + context: . + file: docker/Dockerfile + push: true + tags: "${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSIONARCH }}" + + manifest: + name: Final Docker Image Manifest + runs-on: docker-x86_64 + container: + image: docker:dind + privileged: true + needs: [build] + + steps: + - name: Environment Setup + run: | + # If we have a proxy use it + if [ -n "${HTTP_PROXY}" ]; then echo "HTTP PROXY [${HTTP_PROXY}]"; sed -i -e s'/https/http/' /etc/apk/repositories; fi + # Some pre-reqs + apk add git curl nodejs + # Start docker + ( dockerd --host=tcp://0.0.0.0:2375 --tls=false & ) && sleep 3 + + - name: Registry FQDN Setup + id: registry + run: | + registry=${{ github.server_url }} + echo "registry=${registry##http*://}" >> "$GITHUB_OUTPUT" + + - name: Container Registry Login + uses: docker/login-action@v2 + with: + registry: ${{ steps.registry.outputs.registry }} + username: ${{ gitea.actor }} + password: ${{ secrets.PKG_WRITE_TOKEN }} + + - name: Build Docker Manifest + run: | + docker manifest create ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }} \ + ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}-x86_64 \ + ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}-arm64 + docker manifest push --purge ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }} diff --git a/Dockerfile b/docker/Dockerfile similarity index 96% rename from Dockerfile rename to docker/Dockerfile index 9781d44..53bec73 100644 --- a/Dockerfile +++ b/docker/Dockerfile @@ -30,8 +30,8 @@ RUN sed -i -e 's/dc=my-domain,dc=com/c=AU/' /etc/openldap/slapd.ldif \ ENV SLAPD_CONFIG /etc/openldap/slapd.d/cn=config RUN cp -pr ${SLAPD_CONFIG} ${SLAPD_CONFIG}.orig -COPY init /sbin/ +COPY docker/init-docker /sbin/ # Starting -ENTRYPOINT [ "/sbin/init" ] +ENTRYPOINT [ "/sbin/init-docker" ] EXPOSE 389 636 diff --git a/init b/docker/init-docker similarity index 100% rename from init rename to docker/init-docker