diff options
author | Evan Read <eread@gitlab.com> | 2022-06-06 03:35:18 +0300 |
---|---|---|
committer | Evan Read <eread@gitlab.com> | 2022-06-07 06:56:32 +0300 |
commit | 6d888a1d0ef973db420853ea8b5e6f258e5bba46 (patch) | |
tree | 9f452ab20d845e9085da05b06937eef070c716d8 | |
parent | ed77855b7fab8c2fd082b5626ef4fa8ad6889ca9 (diff) |
Use new base image for jobseread/use-new-base-image
Also:
- Add all system dependencies to base image.
- Move more images to post-merge deployment (not manual).
- Move deployment job to deploy stage.
- Use latest deployed base image for other images.
-rw-r--r-- | .gitlab-ci.yml | 40 | ||||
-rw-r--r-- | dockerfiles/gitlab-docs-base.Dockerfile | 46 | ||||
-rw-r--r-- | dockerfiles/gitlab-docs-lint-html.Dockerfile | 33 | ||||
-rw-r--r-- | dockerfiles/gitlab-docs-lint-markdown.Dockerfile | 29 | ||||
-rw-r--r-- | dockerfiles/single.Dockerfile | 34 |
5 files changed, 58 insertions, 124 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 33899b98..e6febe98 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ include: - '/ci/danger-review.yml' default: - image: registry.gitlab.com/gitlab-org/gitlab-docs:base + image: registry.gitlab.com/gitlab-org/gitlab-docs/base:alpine-3.15-ruby-2.7.5-ed77855b tags: - gitlab-org # Check Ruby, RubyGems, and Bundler versions and install gems @@ -580,20 +580,23 @@ pages: # # Build and deploy the GitLab Docs linting (Markdown) Docker image # -image:docs-lint-markdown: +build-deploy:image:docs-lint-markdown: extends: - - .rules_scheduled_manual - .docker_prepare - stage: build-images + stage: deploy variables: IMAGE_NAME: $CI_REGISTRY_IMAGE/lint-markdown:alpine-$ALPINE_VERSION-vale-$VALE_VERSION-markdownlint-$MARKDOWNLINT_VERSION DOCKERFILE: dockerfiles/gitlab-docs-lint-markdown.Dockerfile + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + changes: + - $DOCKERFILE script: - docker build - --build-arg ALPINE_VERSION=${ALPINE_VERSION} - --build-arg VALE_VERSION=${VALE_VERSION} - --build-arg MARKDOWNLINT_VERSION=${MARKDOWNLINT_VERSION} - -t $IMAGE_NAME -f $DOCKERFILE . + --build-arg VALE_VERSION=${VALE_VERSION} + --build-arg MARKDOWNLINT_VERSION=${MARKDOWNLINT_VERSION} + --tag $IMAGE_NAME + --file $DOCKERFILE . - docker push $IMAGE_NAME environment: name: registry/docs-lint-markdown @@ -614,7 +617,6 @@ test:image:docs-lint-markdown: - $DOCKERFILE script: - docker build - --build-arg ALPINE_VERSION=${ALPINE_VERSION} --build-arg VALE_VERSION=${VALE_VERSION} --build-arg MARKDOWNLINT_VERSION=${MARKDOWNLINT_VERSION} --file $DOCKERFILE . @@ -622,19 +624,21 @@ test:image:docs-lint-markdown: # # Build and deploy the GitLab Docs linting (HTML) Docker image # -image:docs-lint-html: +build-deploy:image:docs-lint-html: extends: - - .rules_scheduled_manual - .docker_prepare - stage: build-images + stage: deploy variables: IMAGE_NAME: $CI_REGISTRY_IMAGE/lint-html:alpine-$ALPINE_VERSION-ruby-$RUBY_VERSION-$CI_COMMIT_SHORT_SHA DOCKERFILE: dockerfiles/gitlab-docs-lint-html.Dockerfile + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + changes: + - $DOCKERFILE script: - docker build - --build-arg RUBY_VERSION=${RUBY_VERSION} - --build-arg ALPINE_VERSION=${ALPINE_VERSION} - -t $IMAGE_NAME -f $DOCKERFILE . + --tag $IMAGE_NAME + --file $DOCKERFILE . - docker push $IMAGE_NAME environment: name: registry/docs-lint-html @@ -655,8 +659,6 @@ test:image:docs-lint-html: - $DOCKERFILE script: - docker build - --build-arg RUBY_VERSION=${RUBY_VERSION} - --build-arg ALPINE_VERSION=${ALPINE_VERSION} --file $DOCKERFILE . # @@ -665,7 +667,7 @@ test:image:docs-lint-html: build-deploy:image:gitlab-docs-base: extends: - .docker_prepare - stage: build-images + stage: deploy variables: IMAGE_NAME: $CI_REGISTRY_IMAGE/base:alpine-$ALPINE_VERSION-ruby-$RUBY_VERSION-$CI_COMMIT_SHORT_SHA DOCKERFILE: dockerfiles/gitlab-docs-base.Dockerfile @@ -692,7 +694,6 @@ test:image:gitlab-docs-base: stage: test needs: [] variables: - IMAGE_NAME: $CI_REGISTRY_IMAGE/base:alpine-$ALPINE_VERSION-ruby-$RUBY_VERSION-$CI_COMMIT_SHORT_SHA DOCKERFILE: dockerfiles/gitlab-docs-base.Dockerfile rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" @@ -702,7 +703,6 @@ test:image:gitlab-docs-base: - docker build --build-arg ALPINE_VERSION=${ALPINE_VERSION} --build-arg RUBY_VERSION=${RUBY_VERSION} - --tag $IMAGE_NAME --file $DOCKERFILE . # diff --git a/dockerfiles/gitlab-docs-base.Dockerfile b/dockerfiles/gitlab-docs-base.Dockerfile index 81d27f16..411598b2 100644 --- a/dockerfiles/gitlab-docs-base.Dockerfile +++ b/dockerfiles/gitlab-docs-base.Dockerfile @@ -8,32 +8,34 @@ FROM ruby:${RUBY_VERSION}-alpine${ALPINE_VERSION} # Install dependencies RUN printf "\n\e[32mINFO: Installing dependencies..\e[39m\n" && apk add --no-cache -U \ - bash \ - build-base \ - curl \ - gcompat \ - git \ - gnupg \ - go \ - grep \ - gzip \ - jq \ - libcurl \ - libxslt \ - libxslt-dev \ - nodejs \ - openssl \ - pngquant \ - ruby-dev \ - tar \ - xz \ - xz-dev \ - yarn \ + bash \ + build-base \ + curl \ + gcompat \ + git \ + gnupg \ + grep \ + gzip \ + jq \ + libc6-compat \ + libcurl \ + libxslt \ + libxslt-dev \ + nodejs \ + openssl \ + parallel \ + pngquant \ + ruby-dev \ + tar \ + xz \ + xz-dev \ + yarn \ && echo 'gem: --no-document' >> /etc/gemrc \ - && gem update --silent --system 3.3.13 \ + && gem update --silent --system \ && printf "\n\e[32mINFO: Dependency versions:\e[39m\n" \ && echo "Ruby: $(ruby --version)" \ && echo "RubyGems: $(gem --version)" \ + && echo "Bundler: $(bundle --version)" \ && echo "Node.js: $(node --version)" \ && echo "Yarn: $(yarn --version)" \ && printf "\n" diff --git a/dockerfiles/gitlab-docs-lint-html.Dockerfile b/dockerfiles/gitlab-docs-lint-html.Dockerfile index 5e722407..bfee8eb1 100644 --- a/dockerfiles/gitlab-docs-lint-html.Dockerfile +++ b/dockerfiles/gitlab-docs-lint-html.Dockerfile @@ -1,37 +1,12 @@ # GitLab Docs linting (HTML) Docker image # -# RUBY_VERSION and ALPINE_VERSION are defined in ../.gitlab-ci.yml -ARG RUBY_VERSION -ARG ALPINE_VERSION +FROM registry.gitlab.com/gitlab-org/gitlab-docs/base:alpine-3.15-ruby-2.7.5-ed77855b -FROM ruby:${RUBY_VERSION}-alpine${ALPINE_VERSION} - -# Install dependencies -RUN printf "\n\e[32mINFO: Installing dependencies..\e[39m\n" && apk add --no-cache -U \ - bash \ - build-base \ - curl \ - gcompat \ - git \ - gnupg \ - grep \ - gzip \ - libcurl \ - libxslt \ - libxslt-dev \ - nodejs \ - openssl \ - parallel \ - ruby-dev \ - tar \ - xz \ - xz-dev \ - yarn \ - && echo 'gem: --no-document' >> /etc/gemrc \ - && gem update --system 3.3.13 \ - && printf "\n\e[32mINFO: Dependency versions:\e[39m\n" \ +# Report dependencies +RUN printf "\n\e[32mINFO: Dependency versions:\e[39m\n" \ && echo "Ruby: $(ruby --version)" \ && echo "RubyGems: $(gem --version)" \ + && echo "Bundler: $(bundle --version)" \ && echo "Node.js: $(node --version)" \ && echo "Yarn: $(yarn --version)" \ && printf "\n" diff --git a/dockerfiles/gitlab-docs-lint-markdown.Dockerfile b/dockerfiles/gitlab-docs-lint-markdown.Dockerfile index 58f3725a..211e0fb0 100644 --- a/dockerfiles/gitlab-docs-lint-markdown.Dockerfile +++ b/dockerfiles/gitlab-docs-lint-markdown.Dockerfile @@ -1,33 +1,16 @@ # GitLab Docs linting (Markdown) Docker image # -# ALPINE_VERSION is defined in ../.gitlab-ci.yml -ARG ALPINE_VERSION - -FROM alpine:${ALPINE_VERSION} +FROM registry.gitlab.com/gitlab-org/gitlab-docs/base:alpine-3.15-ruby-2.7.5-ed77855b # VALE_VERSION and MARKDOWNLINT_VERSION are defined in .gitlab-ci.yml ARG VALE_VERSION ARG MARKDOWNLINT_VERSION -# Install dependencies -RUN printf "\n\e[32mINFO: Installing dependencies..\e[39m\n" && apk add --no-cache -U \ - bash \ - build-base \ - curl \ - gcompat \ - git \ - gnupg \ - grep \ - libc6-compat \ - libcurl \ - libxslt \ - libxslt-dev \ - nodejs \ - openssl \ - pngquant \ - tar \ - yarn \ - && printf "\n\e[32mINFO: Dependency versions:\e[39m\n" \ +# Report dependencies +RUN printf "\n\e[32mINFO: Dependency versions:\e[39m\n" \ + && echo "Ruby: $(ruby --version)" \ + && echo "RubyGems: $(gem --version)" \ + && echo "Bundler: $(bundle --version)" \ && echo "Node.js: $(node --version)" \ && echo "Yarn: $(yarn --version)" \ && printf "\n" diff --git a/dockerfiles/single.Dockerfile b/dockerfiles/single.Dockerfile index 4794e66c..1bdfb162 100644 --- a/dockerfiles/single.Dockerfile +++ b/dockerfiles/single.Dockerfile @@ -19,7 +19,7 @@ RUN apk add --no-cache git \ #- Start of builder stage -# -FROM ruby:2.7.5-alpine3.15 AS builder +FROM registry.gitlab.com/gitlab-org/gitlab-docs/base:alpine-3.15-ruby-2.7.5-ed77855b AS builder # Copy minifier binary from the minifier stage COPY --from=minifier /minify /usr/local/bin/minify @@ -37,37 +37,11 @@ ENV BRANCH_CHARTS=W-Z-stable # Set NANOC_ENV to production ENV NANOC_ENV=production -# -# Install Nanoc dependencies and tools that -# are needed to build the docs site and run the tests. -# -RUN apk add --no-cache -U \ - bash \ - build-base \ - curl \ - gcompat \ - git \ - gnupg \ - go \ - grep \ - gzip \ - jq \ - libcurl \ - libxslt \ - libxslt-dev \ - nodejs \ - openssl \ - pngquant \ - ruby-dev \ - tar \ - xz \ - xz-dev \ - yarn \ - && echo 'gem: --no-document' >> /etc/gemrc \ - && gem update --silent --system 3.3.13 \ - && printf "\n\e[32mINFO: Dependency versions:\e[39m\n" \ +# Report dependencies +RUN printf "\n\e[32mINFO: Dependency versions:\e[39m\n" \ && echo "Ruby: $(ruby --version)" \ && echo "RubyGems: $(gem --version)" \ + && echo "Bundler: $(bundle --version)" \ && echo "Node.js: $(node --version)" \ && echo "Yarn: $(yarn --version)" \ && printf "\n" |