From f88a9b48027f18eb5b97a39431da16615b1c93cf Mon Sep 17 00:00:00 2001 From: badPointer Date: Sat, 7 Oct 2023 12:30:22 +0000 Subject: [PATCH 1/4] chore: make Docker great again --- .gitlab-ci.yml | 23 +++++++++++------------ Dockerfile.alpine => Dockerfile | 18 ++++++++++++------ Dockerfile.debian | 18 ++++++++++++------ 3 files changed, 35 insertions(+), 24 deletions(-) rename Dockerfile.alpine => Dockerfile (89%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 476d869..47fc5e6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,9 +3,8 @@ image: php:8.2 stages: - setup - build - - build-docker + - docker - publish - - publish-docker before_script: - apt update -yqq @@ -51,9 +50,9 @@ build-debian: - build/*.deb # Build the Alpine Docker image -ncc-docker-build-alpine: +docker-alpine: image: docker:latest - stage: build-docker + stage: docker services: - docker:dind before_script: @@ -61,22 +60,22 @@ ncc-docker-build-alpine: script: - | if [[ "$CI_COMMIT_BRANCH" == "master" ]]; then - DOCKER_TAG="latest-alpine" + DOCKER_TAG="latest" elif [[ ! -z "$CI_COMMIT_TAG" ]]; then - DOCKER_TAG="$CI_COMMIT_TAG-alpine" + DOCKER_TAG="$CI_COMMIT_TAG" else - DOCKER_TAG="$CI_COMMIT_REF_SLUG-alpine" + DOCKER_TAG="$CI_COMMIT_REF_SLUG" fi - - docker build -f Dockerfile.alpine -t $CI_REGISTRY_IMAGE:$DOCKER_TAG . + - docker build -f Dockerfile -t $CI_REGISTRY_IMAGE:$DOCKER_TAG . - docker push $CI_REGISTRY_IMAGE:$DOCKER_TAG rules: - exists: - - Dockerfile.alpine + - Dockerfile # Build the Debian Docker image -ncc-docker-build-debian: +docker-debian: image: docker:latest - stage: build-docker + stage: docker services: - docker:dind before_script: @@ -84,7 +83,7 @@ ncc-docker-build-debian: script: - | if [[ "$CI_COMMIT_BRANCH" == "master" ]]; then - DOCKER_TAG="latest-debian" + DOCKER_TAG="debian" elif [[ ! -z "$CI_COMMIT_TAG" ]]; then DOCKER_TAG="$CI_COMMIT_TAG-debian" else diff --git a/Dockerfile.alpine b/Dockerfile similarity index 89% rename from Dockerfile.alpine rename to Dockerfile index 2386dd0..3d9924c 100644 --- a/Dockerfile.alpine +++ b/Dockerfile @@ -18,9 +18,17 @@ # This image is intended to be used as a base for projects using ncc. # -# Builder stage: downloads necessary files and serves them on a silver platter. -FROM php:8.2-fpm AS builder +# OSI labels and build-time args/envs +LABEL maintainer="Netkas " +LABEL description="ncc's official Docker image" + ENV GENERIC_BUILD_PATH=/tmp/ncc_build + +ARG PHP_VERSION=8.2 + + +# Builder stage: downloads necessary files and serves them on a silver platter. +FROM php:{PHP_VERSION}-fpm AS builder WORKDIR /tmp # Install some stuff the default image doesn't come with @@ -43,13 +51,11 @@ RUN cd /tmp/ncc && make redist # Main stage: Copies build files and installs all dependencies -FROM php:8.2-fpm-alpine AS production -LABEL maintainer="netkas " -LABEL description="ncc alpine docker image" +FROM php:{PHP_VERSION}-fpm-alpine AS production ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # Copy downloaded files -COPY --from=builder /tmp/ncc_build/. . +COPY --from=builder ${GENERIC_BUILD_PATH}/. . # Install some stuff the default image doesn't come with RUN apk update && \ diff --git a/Dockerfile.debian b/Dockerfile.debian index cc8b268..0a4d5ca 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -18,9 +18,17 @@ # This image is intended to be used as a base for projects using ncc. # -# Builder stage: downloads necessary files and serves them on a silver platter. -FROM php:8.2-fpm AS builder +# OSI labels and build-time args/envs +LABEL maintainer="Netkas " +LABEL description="ncc's official Docker image" + ENV GENERIC_BUILD_PATH=/tmp/ncc_build + +ARG PHP_VERSION=8.2 + + +# Builder stage: downloads necessary files and serves them on a silver platter. +FROM php:{PHP_VERSION}-fpm AS builder WORKDIR /tmp # Install some stuff the default image doesn't come with @@ -43,13 +51,11 @@ RUN cd /tmp/ncc && make redist # Main stage: Copies build files and installs all dependencies -FROM php:8.2-fpm AS production -LABEL maintainer="netkas " -LABEL description="ncc debian docker image" +FROM php:{PHP_VERSION}-fpm AS production ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # Copy downloaded files -COPY --from=builder /tmp/ncc_build/. . +COPY --from=builder ${GENERIC_BUILD_PATH}/. . # Install some stuff the default image doesn't come with RUN apt-get update -yqq && \ From 248d4208813a23be35e61a9b236a36967189de4f Mon Sep 17 00:00:00 2001 From: badPointer Date: Sat, 7 Oct 2023 12:36:59 +0000 Subject: [PATCH 2/4] chore: Dockerfiles are cool --- Dockerfile | 10 ++++++---- Dockerfile.debian | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3d9924c..a333bae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,10 +18,7 @@ # This image is intended to be used as a base for projects using ncc. # -# OSI labels and build-time args/envs -LABEL maintainer="Netkas " -LABEL description="ncc's official Docker image" - +# Build-time args/envs ENV GENERIC_BUILD_PATH=/tmp/ncc_build ARG PHP_VERSION=8.2 @@ -52,6 +49,11 @@ RUN cd /tmp/ncc && make redist # Main stage: Copies build files and installs all dependencies FROM php:{PHP_VERSION}-fpm-alpine AS production + +# OSI labels +LABEL maintainer="Netkas " +LABEL description="ncc's official Docker image" + ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # Copy downloaded files diff --git a/Dockerfile.debian b/Dockerfile.debian index 0a4d5ca..73d9da4 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -18,10 +18,7 @@ # This image is intended to be used as a base for projects using ncc. # -# OSI labels and build-time args/envs -LABEL maintainer="Netkas " -LABEL description="ncc's official Docker image" - +# Build-time args/envs ENV GENERIC_BUILD_PATH=/tmp/ncc_build ARG PHP_VERSION=8.2 @@ -52,6 +49,11 @@ RUN cd /tmp/ncc && make redist # Main stage: Copies build files and installs all dependencies FROM php:{PHP_VERSION}-fpm AS production + +# OSI labels +LABEL maintainer="Netkas " +LABEL description="ncc's official Docker image" + ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # Copy downloaded files From 5ec56ac0ab30183782bc60c556b397f9f67a8009 Mon Sep 17 00:00:00 2001 From: badPointer Date: Sat, 7 Oct 2023 12:43:00 +0000 Subject: [PATCH 3/4] chore: hot --- Dockerfile | 8 +++----- Dockerfile.debian | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index a333bae..6bcbefa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,14 +18,12 @@ # This image is intended to be used as a base for projects using ncc. # -# Build-time args/envs -ENV GENERIC_BUILD_PATH=/tmp/ncc_build - +# Build-time args ARG PHP_VERSION=8.2 - # Builder stage: downloads necessary files and serves them on a silver platter. FROM php:{PHP_VERSION}-fpm AS builder +ENV GENERIC_BUILD_PATH=/tmp/ncc_build WORKDIR /tmp # Install some stuff the default image doesn't come with @@ -57,7 +55,7 @@ LABEL description="ncc's official Docker image" ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # Copy downloaded files -COPY --from=builder ${GENERIC_BUILD_PATH}/. . +COPY --from=builder /tmp/ncc_build/. . # Install some stuff the default image doesn't come with RUN apk update && \ diff --git a/Dockerfile.debian b/Dockerfile.debian index 73d9da4..7147f6e 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -18,14 +18,12 @@ # This image is intended to be used as a base for projects using ncc. # -# Build-time args/envs -ENV GENERIC_BUILD_PATH=/tmp/ncc_build - +# Build-time args ARG PHP_VERSION=8.2 - # Builder stage: downloads necessary files and serves them on a silver platter. FROM php:{PHP_VERSION}-fpm AS builder +ENV GENERIC_BUILD_PATH=/tmp/ncc_build WORKDIR /tmp # Install some stuff the default image doesn't come with @@ -57,7 +55,7 @@ LABEL description="ncc's official Docker image" ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # Copy downloaded files -COPY --from=builder ${GENERIC_BUILD_PATH}/. . +COPY --from=builder /tmp/ncc_build/. . # Install some stuff the default image doesn't come with RUN apt-get update -yqq && \ From 1880ab6fa8784ee18af161470e4276a8610dd2de Mon Sep 17 00:00:00 2001 From: badPointer Date: Sat, 7 Oct 2023 12:49:25 +0000 Subject: [PATCH 4/4] chore: oops --- Dockerfile | 4 ++-- Dockerfile.debian | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6bcbefa..aa7aa4a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,7 @@ ARG PHP_VERSION=8.2 # Builder stage: downloads necessary files and serves them on a silver platter. -FROM php:{PHP_VERSION}-fpm AS builder +FROM php:${PHP_VERSION}-fpm AS builder ENV GENERIC_BUILD_PATH=/tmp/ncc_build WORKDIR /tmp @@ -46,7 +46,7 @@ RUN cd /tmp/ncc && make redist # Main stage: Copies build files and installs all dependencies -FROM php:{PHP_VERSION}-fpm-alpine AS production +FROM php:${PHP_VERSION}-fpm-alpine AS production # OSI labels LABEL maintainer="Netkas " diff --git a/Dockerfile.debian b/Dockerfile.debian index 7147f6e..a05133c 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -22,7 +22,7 @@ ARG PHP_VERSION=8.2 # Builder stage: downloads necessary files and serves them on a silver platter. -FROM php:{PHP_VERSION}-fpm AS builder +FROM php:${PHP_VERSION}-fpm AS builder ENV GENERIC_BUILD_PATH=/tmp/ncc_build WORKDIR /tmp @@ -46,7 +46,7 @@ RUN cd /tmp/ncc && make redist # Main stage: Copies build files and installs all dependencies -FROM php:{PHP_VERSION}-fpm AS production +FROM php:${PHP_VERSION}-fpm AS production # OSI labels LABEL maintainer="Netkas "