mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-13 03:52:55 +01:00
kaniko
This commit is contained in:
parent
9337cd93fa
commit
c45c6ca23f
4 changed files with 45 additions and 20 deletions
|
|
@ -1,3 +1,6 @@
|
||||||
|
|
||||||
kaniko:
|
kaniko:
|
||||||
extends: .build-with-kaniko
|
extends: .deploy
|
||||||
|
stage: kaniko
|
||||||
|
script:
|
||||||
|
- ./kaniko/build.sh
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
FROM gcr.io/kaniko-project/executor:v1.7.0-debug AS kaniko-src
|
FROM gcr.io/kaniko-project/executor:v1.7.0-debug AS kaniko-src
|
||||||
|
|
||||||
# kaniko cannot place files under /kaniko, therefore we move
|
FROM gcr.io/go-containerregistry/crane as crane-src
|
||||||
# the kaniko folder to /kaniko-dist
|
|
||||||
# https://github.com/GoogleContainerTools/kaniko/issues/960#issuecomment-573160390
|
|
||||||
RUN cp -r /kaniko /kaniko-dist
|
|
||||||
|
|
||||||
FROM gcr.io/go-containerregistry/crane as crane
|
|
||||||
|
|
||||||
FROM alpine/git
|
FROM alpine/git
|
||||||
|
|
||||||
|
|
@ -13,21 +8,21 @@ ENV HOME /root
|
||||||
ENV USER root
|
ENV USER root
|
||||||
|
|
||||||
# See https://github.com/GoogleContainerTools/kaniko/blob/master/deploy/Dockerfile#L65-L70
|
# See https://github.com/GoogleContainerTools/kaniko/blob/master/deploy/Dockerfile#L65-L70
|
||||||
# Modified to use /kaniko-dist however, due to the limitation above
|
# Modified to use /kaniko however, due to the limitation above
|
||||||
COPY --from=kaniko-src /kaniko-dist/ /kaniko-dist/
|
COPY --from=kaniko-src /kaniko/ /kaniko/
|
||||||
COPY --from=kaniko-src /etc/nsswitch.conf /etc/nsswitch.conf
|
COPY --from=kaniko-src /etc/nsswitch.conf /etc/nsswitch.conf
|
||||||
|
|
||||||
ENV PATH /kaniko-dist:$PATH
|
ENV PATH /kaniko:$PATH
|
||||||
ENV SSL_CERT_DIR=/kaniko-dist/ssl/certs
|
ENV SSL_CERT_DIR=/kaniko/ssl/certs
|
||||||
ENV DOCKER_CONFIG /kaniko-dist/.docker/
|
ENV DOCKER_CONFIG /kaniko/.docker/
|
||||||
ENV DOCKER_CREDENTIAL_GCR_CONFIG /kaniko-dist/.config/gcloud/docker_credential_gcr_config.json
|
ENV DOCKER_CREDENTIAL_GCR_CONFIG /kaniko/.config/gcloud/docker_credential_gcr_config.json
|
||||||
|
|
||||||
## add aliases for kaniko-executor and kaniko-warmer for better convenience
|
## add aliases for kaniko-executor and kaniko-warmer for better convenience
|
||||||
RUN ln -s /kaniko-dist/executor /kaniko-dist/kaniko-executor && \
|
RUN ln -s /kaniko/executor /kaniko/kaniko-executor && \
|
||||||
ln -s /kaniko-dist/warmer /kaniko-dist/kaniko-warmer
|
ln -s /kaniko/warmer /kaniko/kaniko-warmer
|
||||||
|
|
||||||
# Adding crane to the image
|
# Adding crane to the image
|
||||||
COPY --from=crane /ko-app/crane /usr/local/bin/crane
|
COPY --from=crane-src /ko-app/crane /usr/local/bin/crane
|
||||||
|
|
||||||
# Adding jq to the image
|
# Adding jq to the image
|
||||||
RUN apk add --no-cache jq
|
RUN apk add --no-cache jq
|
||||||
|
|
|
||||||
31
kaniko/build.sh
Executable file
31
kaniko/build.sh
Executable file
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if ! [ "$CI" = "true" ]; then
|
||||||
|
echo "This script is supposed to run on CI"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
KANIKO_DIR="$CI_PROJECT_DIR/kaniko"
|
||||||
|
|
||||||
|
IMAGE_TAG=$(cat "$KANIKO_DIR/VERSION")
|
||||||
|
|
||||||
|
if [ "$CI_COMMIT_REF_NAME" = "$CI_DEFAULT_BRANCH" ]; then
|
||||||
|
DOCKER_IMAGE="$CI_REGISTRY_IMAGE/kaniko:$IMAGE_TAG"
|
||||||
|
else
|
||||||
|
DOCKER_IMAGE="$CI_REGISTRY_IMAGE/unstable/kaniko:$IMAGE_TAG-$CI_COMMIT_SHORT_SHA"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Building image $DOCKER_IMAGE"
|
||||||
|
|
||||||
|
docker build -f "$KANIKO_DIR/Dockerfile" "$KANIKO_DIR"
|
||||||
|
|
||||||
|
echo "Pushing $DOCKER_IMAGE"
|
||||||
|
docker push "$DOCKER_IMAGE"
|
||||||
|
|
||||||
|
if [ "$CI_COMMIT_REF_NAME" = "$CI_DEFAULT_BRANCH" ]; then
|
||||||
|
echo "Tagging $DOCKER_IMAGE as latest"
|
||||||
|
docker tag "$DOCKER_IMAGE" "$CI_REGISTRY_IMAGE/kaniko"
|
||||||
|
docker push "$DOCKER_IMAGE"
|
||||||
|
fi
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Force a symlink to circumvent:
|
|
||||||
# https://github.com/GoogleContainerTools/kaniko/issues/960#issuecomment-573160390
|
|
||||||
ln -sf /kaniko-dist /kaniko
|
|
||||||
|
|
||||||
if [ -z "$BUILD_IMAGE_NO_MESSAGE" ]; then
|
if [ -z "$BUILD_IMAGE_NO_MESSAGE" ]; then
|
||||||
echo "You are using a GitLab CI build-image with kaniko and crane"
|
echo "You are using a GitLab CI build-image with kaniko and crane"
|
||||||
echo "You can suppress this message by setting BUILD_IMAGE_NO_MESSAGE"
|
echo "You can suppress this message by setting BUILD_IMAGE_NO_MESSAGE"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue