diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5e79fe2c4e..bc4c78ebf5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -81,6 +81,7 @@ jobs: run: | { echo "epoch=$(git log -1 --format=%ct)" + echo "created=$(TZ=UTC git log -1 --format=%cd --date=format-local:%Y-%m-%dT%H:%M:%SZ)" echo "sha=$(git rev-parse HEAD)" } >> "$GITHUB_OUTPUT" @@ -100,6 +101,7 @@ jobs: build-args: | COOLIFY_VERSION=${{ needs.plan.outputs.coolify }} SOURCE_DATE_EPOCH=${{ steps.args.outputs.epoch }} + CREATED=${{ steps.args.outputs.created }} GIT_SHA=${{ steps.args.outputs.sha }} - name: Upload the image diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile index ce77ae4ea4..2e7bf28fda 100644 --- a/docker/development/Dockerfile +++ b/docker/development/Dockerfile @@ -116,6 +116,28 @@ RUN mkdir -p /etc/nginx/conf.d && \ COPY --from=minio-client /usr/bin/mc /usr/bin/mc RUN chmod +x /usr/bin/mc +ARG SERVERSIDEUP_PHP_VERSION +ARG COOLIFY_VERSION +ARG CREATED +ARG GIT_SHA + +LABEL org.opencontainers.image.title="Coolify Development" \ + org.opencontainers.image.description="The development image of Coolify, it runs the checkout that Docker Compose mounts into it." \ + org.opencontainers.image.version="${COOLIFY_VERSION}" \ + org.opencontainers.image.created="${CREATED}" \ + org.opencontainers.image.revision="${GIT_SHA}" \ + org.opencontainers.image.licenses="Apache-2.0" \ + org.opencontainers.image.authors="coollabsio" \ + org.opencontainers.image.vendor="coollabsio" \ + org.opencontainers.image.url="https://coolify.io" \ + org.opencontainers.image.source="https://github.com/coollabsio/coolify" \ + org.opencontainers.image.documentation="https://github.com/coollabsio/coolify/blob/main/CONTRIBUTING.md" \ + org.opencontainers.image.base.name="docker.io/serversideup/php:${SERVERSIDEUP_PHP_VERSION}" \ + io.coolify.nginx.version="${NGINX_VERSION}" \ + io.coolify.cloudflared.version="${CLOUDFLARED_VERSION}" \ + io.coolify.postgresql-client.version="${POSTGRES_VERSION}" \ + io.coolify.php-uv.version="${PHP_UV_VERSION}" + # Stay as root for s6 init so bind-mounted workspaces work even when the host # tree is root-owned (CI, Jean, rootful Docker). PHP-FPM/nginx still run as # www-data via their service configs. Do NOT set USER www-data here — that diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile index 018dca1d18..fcd20d01e0 100644 --- a/docker/production/Dockerfile +++ b/docker/production/Dockerfile @@ -17,6 +17,12 @@ ARG PHP_UV_VERSION=0.3.0 ARG USER_ID=9999 ARG GROUP_ID=9999 +# Set by the build workflow +ARG COOLIFY_VERSION +ARG SOURCE_DATE_EPOCH +ARG CREATED +ARG GIT_SHA + # ================================================================= # Stage 1: Composer dependencies # ================================================================= @@ -220,10 +226,28 @@ RUN mkdir -p /etc/nginx/conf.d && \ COPY --from=minio-client /usr/bin/mc /usr/bin/mc RUN chmod +x /usr/bin/mc +ARG SERVERSIDEUP_PHP_VERSION +ARG NODE_VERSION +ARG CREATED ARG GIT_SHA -LABEL org.opencontainers.image.version="${COOLIFY_VERSION}" \ - org.opencontainers.image.revision="${GIT_SHA}" +LABEL org.opencontainers.image.title="Coolify" \ + org.opencontainers.image.description="An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 360+ one-click services on your own servers." \ + org.opencontainers.image.version="${COOLIFY_VERSION}" \ + org.opencontainers.image.created="${CREATED}" \ + org.opencontainers.image.revision="${GIT_SHA}" \ + org.opencontainers.image.licenses="Apache-2.0" \ + org.opencontainers.image.authors="coollabsio" \ + org.opencontainers.image.vendor="coollabsio" \ + org.opencontainers.image.url="https://coolify.io" \ + org.opencontainers.image.source="https://github.com/coollabsio/coolify" \ + org.opencontainers.image.documentation="https://coolify.io/docs" \ + org.opencontainers.image.base.name="docker.io/serversideup/php:${SERVERSIDEUP_PHP_VERSION}" \ + io.coolify.nginx.version="${NGINX_VERSION}" \ + io.coolify.node.version="${NODE_VERSION}" \ + io.coolify.cloudflared.version="${CLOUDFLARED_VERSION}" \ + io.coolify.postgresql-client.version="${POSTGRES_VERSION}" \ + io.coolify.php-uv.version="${PHP_UV_VERSION}" # Switch to non-root user USER www-data