From f88a9b48027f18eb5b97a39431da16615b1c93cf Mon Sep 17 00:00:00 2001 From: badPointer Date: Sat, 7 Oct 2023 12:30:22 +0000 Subject: [PATCH] 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 && \