diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9b3f8114220cecd64a59ea3a1f84b86de0a1cf72..939591391f6d3b058728bbbada0e08112af93f7c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,153 @@ +image: docker:latest + +services: + - docker:dind + +before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + +# +# TESTS +# + lint_dockerfile: stage: test image: hadolint/hadolint:latest-debian + before_script: + - mkdir ~/.config + - cp ./.hadolint.yaml ~/.config/hadolint.yaml script: - find . -name "Dockerfile" -execdir hadolint {} \; + +# +# IMAGE BUILDS/PUSHES +# + +# Golang +build-golang-master: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/golang:latest" ./golang/latest + - docker push "$CI_REGISTRY_IMAGE/golang:latest" + only: + - master + when: manual + +build-golang-dev: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/golang:latest-dev" ./golang/latest + - docker push "$CI_REGISTRY_IMAGE/golang:latest-dev" + except: + - master + +# PHP 7.3 +build-php-7.3-master: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:7.3" ./php/7.3 + - docker push "$CI_REGISTRY_IMAGE/php:7.3" + only: + - master + when: manual + +build-php-7.3-dev: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:7.3-dev" ./php/7.3 + - docker push "$CI_REGISTRY_IMAGE/php:7.3-dev" + except: + - master + +# PHP 7.2 +build-php-7.2-master: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:7.2" ./php/7.2 + - docker push "$CI_REGISTRY_IMAGE/php:7.2" + only: + - master + when: manual + +build-php-7.2-dev: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:7.2-dev" ./php/7.2 + - docker push "$CI_REGISTRY_IMAGE/php:7.2-dev" + except: + - master + +# PHP 7.1 +build-php-7.1-master: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:7.1" ./php/7.1 + - docker push "$CI_REGISTRY_IMAGE/php:7.1" + only: + - master + when: manual + +build-php-7.1-dev: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:7.1-dev" ./php/7.1 + - docker push "$CI_REGISTRY_IMAGE/php:7.1-dev" + except: + - master + +# PHP 7.0 +build-php-7.0-master: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:7.0" ./php/7.0 + - docker push "$CI_REGISTRY_IMAGE/php:7.0" + only: + - master + when: manual + +build-php-7.0-dev: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:7.0-dev" ./php/7.0 + - docker push "$CI_REGISTRY_IMAGE/php:7.0-dev" + except: + - master + allow_failure: true + +# PHP 5.6 +build-php-5.6-master: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:5.6" ./php/5.6 + - docker push "$CI_REGISTRY_IMAGE/php:5.6" + only: + - master + when: manual + +build-php-5.6-dev: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:5.6-dev" ./php/5.6 + - docker push "$CI_REGISTRY_IMAGE/php:5.6-dev" + except: + - master + allow_failure: true + +# PHP 5.3 +build-php-5.3-master: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:5.3" ./php/5.3 + - docker push "$CI_REGISTRY_IMAGE/php:5.3" + only: + - master + when: manual + +build-php-5.3-dev: + stage: deploy + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE/php:5.3-dev" ./php/5.3 + - docker push "$CI_REGISTRY_IMAGE/php:5.3-dev" + except: + - master + allow_failure: true diff --git a/.hadolint.yaml b/.hadolint.yaml new file mode 100644 index 0000000000000000000000000000000000000000..395c31fb3dfa473f5383fc4a9663d3f20913454b --- /dev/null +++ b/.hadolint.yaml @@ -0,0 +1,3 @@ +ignored: + - DL3007 + - DL3008 diff --git a/README.md b/README.md index 655b595dff06068d17928a76f9b38d6fab424f3a..79543d86e763f42018975e00003684e1dc8d1587 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -Docker Images -============= +# Docker Images [](https://git.ethitter.com/docker/images/commits/master) -A collection of images used with GitLab CI \ No newline at end of file +A collection of images used with GitLab CI, built using GitLab CI. ♾ + +## Use + +See this project's container registry for available images. diff --git a/golang/latest/Dockerfile b/golang/latest/Dockerfile index f5d9b433102ded90a16ddbef5fdbb16889882923..ae4e08495de63878397c76902a1846e5329e732b 100644 --- a/golang/latest/Dockerfile +++ b/golang/latest/Dockerfile @@ -1,6 +1,8 @@ # Base image: https://hub.docker.com/_/golang/ FROM golang:latest -MAINTAINER ethitter + +LABEL maintainer="ethitter" +LABEL version="1.0" # Install golint ENV GOPATH /go @@ -8,9 +10,11 @@ ENV PATH ${GOPATH}/bin:$PATH RUN go get -u github.com/golang/lint/golint # Add apt key for LLVM repository +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - # Add LLVM apt repository +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN echo "deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch-5.0 main" | tee -a /etc/apt/sources.list # Install clang from LLVM repository @@ -21,4 +25,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ # Set Clang as default CC ENV set_clang /etc/profile.d/set-clang-cc.sh +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN echo "export CC=clang-5.0" | tee -a ${set_clang} && chmod a+x ${set_clang} diff --git a/php/5.3/Dockerfile b/php/5.3/Dockerfile index 2eee5f47661b63831fb8c7f85fc96273924a449d..6b4a712ff5b890e4f73ee56d558a5b0f1b80ae38 100644 --- a/php/5.3/Dockerfile +++ b/php/5.3/Dockerfile @@ -1,9 +1,16 @@ FROM tetraweb/php:5.3 -MAINTAINER ethitter -RUN apt-get update && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev libmysqlclient-dev libfreetype6-dev libjpeg-dev libxpm-dev --fix-missing +LABEL maintainer="ethitter" +LABEL version="1.0" + +RUN apt-get update \ + && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev libmysqlclient-dev libfreetype6-dev libjpeg-dev libxpm-dev --fix-missing --no-install-recommends \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + RUN docker-php-ext-install mbstring mysqli intl gd zip bz2 +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN chmod +x /usr/local/bin/composer diff --git a/php/5.6/Dockerfile b/php/5.6/Dockerfile index 21cc36f1718dde9f33ac0d7d0711a4a1fb719647..e895f857a4024f2cb6876efa1bbac6278b6851a4 100644 --- a/php/5.6/Dockerfile +++ b/php/5.6/Dockerfile @@ -1,9 +1,16 @@ FROM php:5.6-stretch -MAINTAINER ethitter -RUN apt-get update && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev --fix-missing +LABEL maintainer="ethitter" +LABEL version="1.0" + +RUN apt-get update \ + && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev --fix-missing --no-install-recommends \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + RUN docker-php-ext-install mbstring mysqli intl gd zip bz2 +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN chmod +x /usr/local/bin/composer diff --git a/php/7.0/Dockerfile b/php/7.0/Dockerfile index 2b5bd5d1d451e18bd532bf3985fd822025504729..48283e75da32997a06d47de15e485aabbcda1c20 100644 --- a/php/7.0/Dockerfile +++ b/php/7.0/Dockerfile @@ -1,9 +1,16 @@ FROM php:7.0-stretch -MAINTAINER ethitter -RUN apt-get update && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev --fix-missing +LABEL maintainer="ethitter" +LABEL version="1.0" + +RUN apt-get update \ + && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev --fix-missing --no-install-recommends \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + RUN docker-php-ext-install mbstring mysqli intl gd zip bz2 +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN chmod +x /usr/local/bin/composer diff --git a/php/7.1/Dockerfile b/php/7.1/Dockerfile index bca230c948387c75ce98398a1853dec377ab6a24..816f0eb0cc1181a0f28d0ccceafc6bd4f28ddb13 100644 --- a/php/7.1/Dockerfile +++ b/php/7.1/Dockerfile @@ -1,9 +1,16 @@ FROM php:7.1-stretch -MAINTAINER ethitter -RUN apt-get update && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev --fix-missing +LABEL maintainer="ethitter" +LABEL version="1.0" + +RUN apt-get update \ + && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev --fix-missing --no-install-recommends \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + RUN docker-php-ext-install mbstring mysqli intl gd zip bz2 +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN chmod +x /usr/local/bin/composer diff --git a/php/7.2/Dockerfile b/php/7.2/Dockerfile index d2a0cbe16c1cf9156cc51d67ba2471cee411f9ff..4d0b94709ae157dc0bddc9ad03a3a0141acbda26 100644 --- a/php/7.2/Dockerfile +++ b/php/7.2/Dockerfile @@ -1,9 +1,16 @@ FROM php:7.2-stretch -MAINTAINER ethitter -RUN apt-get update && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev --fix-missing +LABEL maintainer="ethitter" +LABEL version="1.0" + +RUN apt-get update \ + && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev --fix-missing --no-install-recommends \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + RUN docker-php-ext-install mbstring mysqli intl gd zip bz2 +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN chmod +x /usr/local/bin/composer diff --git a/php/7.3/Dockerfile b/php/7.3/Dockerfile index 771ddc8195e4837abe09b5cc7a39b9ba6a2a3670..847c4c774514c467d9b5bee6effcd09fcdd88cbb 100644 --- a/php/7.3/Dockerfile +++ b/php/7.3/Dockerfile @@ -1,9 +1,16 @@ FROM php:7.3-stretch -MAINTAINER ethitter -RUN apt-get update && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev libzip-dev --fix-missing +LABEL maintainer="ethitter" +LABEL version="1.0" + +RUN apt-get update \ + && apt-get -yqqf install lsb-release zip unzip subversion mysql-client libicu-dev libpng-dev libbz2-dev default-libmysqlclient-dev libzip-dev --fix-missing --no-install-recommends \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + RUN docker-php-ext-install mbstring mysqli intl gd zip bz2 +SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN chmod +x /usr/local/bin/composer