diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..9376025 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,11 @@ +image: alpine:latest + +variables: + DOCKER_DRIVER: overlay2 + +stages: + - build + +include: + - template: '/.gitlab-ci/Jobs/build_image.yml' + diff --git a/.gitlab-ci/Jobs/build_image.yml b/.gitlab-ci/Jobs/build_image.yml new file mode 100644 index 0000000..3a057dc --- /dev/null +++ b/.gitlab-ci/Jobs/build_image.yml @@ -0,0 +1,30 @@ +.build-template: + image: + name: gcr.io/kaniko-project/executor:debug + entrypoint: [""] + script: + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json + - | + /kaniko/executor --context $CI_PROJECT_DIR \ + --build-arg PASSBOLT_URL="$PASSBOLT_URL" \ + --build-arg PHP_EXTENSIONS="$PHP_EXTENSIONS" \ + --build-arg PASSBOLT_BASE_PACKAGES="$PASSBOLT_BASE_PACKAGES" \ + --build-arg PASSBOLT_DEV_PACKAGES="$PASSBOLT_DEV_PACKAGES" \ + --dockerfile $CI_PROJECT_DIR/Dockerfile \ + --destination $CI_REGISTRY_IMAGE:$PASSBOLT_FLAVOUR-$CI_COMMIT_TAG + +passbolt-ce-prerelease: + extends: .build-template + variables: + PHP_EXTENSIONS: "gnupg redis mcrypt" + PASSBOLT_BASE_PACKAGES: "nginx gnupg libgpgme11 libmcrypt4 mysql-client supervisor cron" + PASSBOLT_DEV_PACKAGES: "libpng-dev libjpeg62-turbo-dev libicu-dev libxslt1-dev libmcrypt-dev unzip git" + PASSBOLT_FLAVOUR: "passbolt-ce" + +passbolt-pro-prerelease: + extends: .build-template + variables: + PHP_EXTENSIONS: "gnupg redis mcrypt ldap" + PASSBOLT_BASE_PACKAGES: "nginx gnupg libgpgme11 libmcrypt4 mysql-client supervisor cron" + PASSBOLT_DEV_PACKAGES: "libldap2-dev libpng-dev libjpeg62-turbo-dev libicu-dev libxslt1-dev libmcrypt-dev unzip git" + PASSBOLT_FLAVOUR: "passbolt-pro" diff --git a/Dockerfile b/Dockerfile index b8e4e93..08d9bb5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,19 +24,22 @@ ARG PASSBOLT_DEV_PACKAGES="libgpgme11-dev \ unzip \ git" -ENV PECL_BASE_URL="https://pecl.php.net/get" -ENV PHP_EXT_DIR="/usr/src/php/ext" - -WORKDIR /var/www/passbolt -RUN apt-get update \ - && apt-get -y install --no-install-recommends $PASSBOLT_DEV_PACKAGES \ - nginx \ +ARG PASSBOLT_BASE_PACKAGES="nginx \ gnupg \ libgpgme11 \ libmcrypt4 \ mysql-client \ supervisor \ - cron \ + cron" + +ENV PECL_BASE_URL="https://pecl.php.net/get" +ENV PHP_EXT_DIR="/usr/src/php/ext" + +WORKDIR /var/www/passbolt +RUN apt-get update \ + && apt-get -y install --no-install-recommends \ + $PASSBOLT_DEV_PACKAGES \ + $PASSBOLT_BASE_PACKAGES \ && mkdir /home/www-data \ && chown -R www-data:www-data /home/www-data \ && usermod -d /home/www-data www-data \