Build normal and extended versions for the registry images
Closes pages/hugo#29
This commit is contained in:
parent
17fb5d5ad4
commit
9b028b48b5
@ -4,8 +4,9 @@ image: docker:latest
|
|||||||
# improved performance.
|
# improved performance.
|
||||||
variables:
|
variables:
|
||||||
DOCKER_DRIVER: overlay2
|
DOCKER_DRIVER: overlay2
|
||||||
IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
|
IMAGE_NAME: $CI_REGISTRY_IMAGE
|
||||||
IMAGE_LATEST: $CI_REGISTRY_IMAGE:latest
|
IMAGE_NAME_HUGO: $CI_REGISTRY_IMAGE/hugo
|
||||||
|
IMAGE_NAME_HUGO_EXTENDED: $CI_REGISTRY_IMAGE/hugo_extended
|
||||||
|
|
||||||
services:
|
services:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
@ -21,17 +22,29 @@ before_script:
|
|||||||
test:
|
test:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- docker build -t $IMAGE_NAME .
|
- TESTS="wget -qO- https://fedoraproject.org/static/hotspot.txt | grep OK && cd /git && hugo"
|
||||||
- docker run -v `pwd`:/git $IMAGE_NAME /bin/sh -c "wget -qO- https://fedoraproject.org/static/hotspot.txt | grep OK && cd /git && hugo"
|
- docker build --build-arg HUGO=hugo -t $IMAGE_NAME_HUGO .
|
||||||
|
- docker build --build-arg HUGO=hugo_extended -t $IMAGE_NAME_HUGO_EXTENDED .
|
||||||
|
- docker run -v `pwd`:/git $IMAGE_NAME_HUGO /bin/sh -c "$TESTS"
|
||||||
|
- docker run -v `pwd`:/git $IMAGE_NAME_HUGO_EXTENDED /bin/sh -c "$TESTS"
|
||||||
except:
|
except:
|
||||||
- schedules
|
- schedules
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
script:
|
script:
|
||||||
- docker build -t $IMAGE_NAME -t $IMAGE_LATEST .
|
- docker build --build-arg HUGO=hugo -t $IMAGE_NAME_HUGO .
|
||||||
|
- docker build --build-arg HUGO=hugo_extended -t $IMAGE_NAME_HUGO_EXTENDED .
|
||||||
|
- docker tag $IMAGE_NAME_HUGO $IMAGE_NAME
|
||||||
|
- docker tag $IMAGE_NAME_HUGO $IMAGE_NAME:$CI_COMMIT_REF_NAME
|
||||||
|
- docker tag $IMAGE_NAME_HUGO $IMAGE_NAME_HUGO:$CI_COMMIT_REF_NAME
|
||||||
|
- docker tag $IMAGE_NAME_HUGO_EXTENDED $IMAGE_NAME_HUGO_EXTENDED:$CI_COMMIT_REF_NAME
|
||||||
- docker push $IMAGE_NAME
|
- docker push $IMAGE_NAME
|
||||||
- docker push $IMAGE_LATEST
|
- docker push $IMAGE_NAME:$CI_COMMIT_REF_NAME
|
||||||
|
- docker push $IMAGE_NAME_HUGO
|
||||||
|
- docker push $IMAGE_NAME_HUGO:$CI_COMMIT_REF_NAME
|
||||||
|
- docker push $IMAGE_NAME_HUGO_EXTENDED
|
||||||
|
- docker push $IMAGE_NAME_HUGO_EXTENDED:$CI_COMMIT_REF_NAME
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
|
|
||||||
|
22
Dockerfile
22
Dockerfile
@ -1,15 +1,21 @@
|
|||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
|
|
||||||
ENV HUGO_VERSION 0.55.6
|
ARG HUGO=hugo
|
||||||
ENV HUGO_SHA 39d3119cdb9ba5d6f1f1b43693e707937ce851791a2ea8d28003f49927c428f4
|
ARG HUGO_VERSION=0.55.6
|
||||||
|
ARG HUGO_APK="ca-certificates openssl git"
|
||||||
|
ARG HUGO_SHA=39d3119cdb9ba5d6f1f1b43693e707937ce851791a2ea8d28003f49927c428f4
|
||||||
|
ARG HUGO_EXTENDED_APK="libc6-compat libstdc++"
|
||||||
|
ARG HUGO_EXTENDED_SHA=8962b8cdc0ca220da97293cea0bb1b31718cb4d99d0766be6865cb976b1c1805
|
||||||
|
|
||||||
# Install HUGO
|
# Install HUGO
|
||||||
RUN set -eux && \
|
RUN set -eux && \
|
||||||
apk add --update --no-cache \
|
case ${HUGO} in \
|
||||||
ca-certificates \
|
*_extended) \
|
||||||
openssl \
|
HUGO_APK="${HUGO_APK} ${HUGO_EXTENDED_APK}" \
|
||||||
git && \
|
HUGO_SHA="${HUGO_EXTENDED_SHA}" ;; \
|
||||||
wget -O ${HUGO_VERSION}.tar.gz https://github.com/spf13/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz && \
|
esac && \
|
||||||
|
apk add --update --no-cache ${HUGO_APK} && \
|
||||||
|
wget -O ${HUGO_VERSION}.tar.gz https://github.com/spf13/hugo/releases/download/v${HUGO_VERSION}/${HUGO}_${HUGO_VERSION}_Linux-64bit.tar.gz && \
|
||||||
echo "${HUGO_SHA} ${HUGO_VERSION}.tar.gz" | sha256sum -c && \
|
echo "${HUGO_SHA} ${HUGO_VERSION}.tar.gz" | sha256sum -c && \
|
||||||
tar xf ${HUGO_VERSION}.tar.gz && mv hugo* /usr/bin/hugo && \
|
tar xf ${HUGO_VERSION}.tar.gz && mv hugo* /usr/bin/hugo && \
|
||||||
rm -rf ${HUGO_VERSION}.tar.gz && \
|
rm -rf ${HUGO_VERSION}.tar.gz && \
|
||||||
@ -18,4 +24,4 @@ RUN set -eux && \
|
|||||||
|
|
||||||
EXPOSE 1313
|
EXPOSE 1313
|
||||||
|
|
||||||
CMD ["/usr/local/bin/hugo"]
|
CMD ["/usr/bin/hugo"]
|
||||||
|
15
update.py
15
update.py
@ -62,8 +62,9 @@ for asset in release['assets']:
|
|||||||
exit(1)
|
exit(1)
|
||||||
for line in rchecksums.text.split("\n"):
|
for line in rchecksums.text.split("\n"):
|
||||||
if 'hugo_%s_Linux-64bit.tar.gz'%(release['name'][1:]) in line:
|
if 'hugo_%s_Linux-64bit.tar.gz'%(release['name'][1:]) in line:
|
||||||
checksum = line[:64]
|
hugo_checksum = line[:64]
|
||||||
break
|
if 'hugo_extended_%s_Linux-64bit.tar.gz'%(release['name'][1:]) in line:
|
||||||
|
hugo_extended_checksum = line[:64]
|
||||||
|
|
||||||
# Get Dockerfile from repository
|
# Get Dockerfile from repository
|
||||||
rdockerfile = requests.get('%s/projects/%s/repository/files/Dockerfile/raw?ref=registry'%(GITLAB_URL, GITLAB_PROJECT))
|
rdockerfile = requests.get('%s/projects/%s/repository/files/Dockerfile/raw?ref=registry'%(GITLAB_URL, GITLAB_PROJECT))
|
||||||
@ -75,10 +76,12 @@ dockerfile = rdockerfile.text.split("\n")
|
|||||||
|
|
||||||
# Replace env variables
|
# Replace env variables
|
||||||
for index, line in enumerate(dockerfile):
|
for index, line in enumerate(dockerfile):
|
||||||
if "ENV HUGO_VERSION" in line:
|
if "ARG HUGO_VERSION" in line:
|
||||||
dockerfile[index] = "ENV HUGO_VERSION %s"%release['name'][1:]
|
dockerfile[index] = "ARG HUGO_VERSION=%s"%release['name'][1:]
|
||||||
if "ENV HUGO_SHA" in line:
|
if "ARG HUGO_SHA" in line:
|
||||||
dockerfile[index] = "ENV HUGO_SHA %s"%checksum
|
dockerfile[index] = "ARG HUGO_SHA=%s"%hugo_checksum
|
||||||
|
if "ARG HUGO_EXTENDED_SHA" in line:
|
||||||
|
dockerfile[index] = "ARG HUGO_EXTENDED_SHA=%s"%hugo_extended_checksum
|
||||||
|
|
||||||
# Update Dockerfile on repository
|
# Update Dockerfile on repository
|
||||||
requestData = {
|
requestData = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user