mirror of
https://git.fifo-f.eu/tex-projects/docker-images.git
synced 2025-04-11 17:58:14 +02:00
104 lines
4.4 KiB
YAML
104 lines
4.4 KiB
YAML
stages:
|
|
- build
|
|
- push
|
|
|
|
cache:
|
|
key: texlive-cache
|
|
paths:
|
|
- /usr/local/texlive
|
|
- /var/cache/tlmgr
|
|
- /var/cache/apt/archives
|
|
|
|
variables:
|
|
IMAGE_NAME: sharelatex-with-texlive-full
|
|
ARCHIVED_IMAGE: sharelatex_with_texlive_full.tar
|
|
TEXLIVE_REPO: https://ftp.tu-chemnitz.de/pub/tug/historic/systems/texlive/2024/tlnet-final
|
|
IMAGE_ENTRYPOINT: "/sbin/my_init"
|
|
GITEA_IMAGE_NAME: ${GITEA_REGISTRY}/tex-projects/${IMAGE_NAME}
|
|
DOCKER_HUB_IMAGE_NAME: ${DOCKER_HUB_USER}/${IMAGE_NAME}
|
|
|
|
workflow:
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
|
|
build:
|
|
stage: build
|
|
tags:
|
|
- privileged
|
|
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:24.0.5
|
|
services:
|
|
- name: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:24.0.5-dind
|
|
alias: docker
|
|
before_script:
|
|
- echo "$CI_DEPENDENCY_PROXY_PASSWORD" | docker login $CI_DEPENDENCY_PROXY_SERVER -u $CI_DEPENDENCY_PROXY_USER --password-stdin
|
|
script:
|
|
- |
|
|
if [ ! -f $ARCHIVED_IMAGE ]; then
|
|
apk add --no-cache curl
|
|
curl -sSfL https://raw.githubusercontent.com/overleaf/toolkit/master/lib/config-seed/version -o version.txt
|
|
OVERLEAF_VERSION=$(cat version.txt)
|
|
echo "*** Image version: $OVERLEAF_VERSION"
|
|
docker pull --quiet ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/sharelatex/sharelatex:$OVERLEAF_VERSION
|
|
docker run --name temp --entrypoint /bin/bash ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/sharelatex/sharelatex:$OVERLEAF_VERSION -c "\
|
|
tlmgr option repository $TEXLIVE_REPO && \
|
|
tlmgr update --self --all && \
|
|
tlmgr install scheme-full && \
|
|
luaotfload-tool -fu && \
|
|
tlmgr path add && \
|
|
apt update && apt install -y inkscape lilypond python3-pygments && \
|
|
echo shell_escape = t >> /usr/local/texlive/2024/texmf.cnf && \
|
|
echo 'server_tokens off;' > /etc/nginx/conf.d/security.conf"
|
|
docker commit --change "ENTRYPOINT $IMAGE_ENTRYPOINT" temp $IMAGE_NAME:$OVERLEAF_VERSION
|
|
docker tag $IMAGE_NAME:$OVERLEAF_VERSION $IMAGE_NAME:latest
|
|
docker save -o $ARCHIVED_IMAGE $IMAGE_NAME:$OVERLEAF_VERSION $IMAGE_NAME:latest
|
|
docker system prune -f
|
|
fi
|
|
|
|
artifacts:
|
|
paths:
|
|
- $ARCHIVED_IMAGE
|
|
- version.txt
|
|
expire_in: 7 days
|
|
|
|
push:
|
|
stage: push
|
|
tags:
|
|
- privileged
|
|
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:24.0.5
|
|
services:
|
|
- name: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:24.0.5-dind
|
|
alias: docker
|
|
dependencies:
|
|
- build
|
|
script:
|
|
- OVERLEAF_VERSION=$(cat version.txt)
|
|
- echo $CI_JOB_TOKEN | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
|
|
- docker load -i $ARCHIVED_IMAGE
|
|
- docker tag ${IMAGE_NAME}:${OVERLEAF_VERSION} ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:${OVERLEAF_VERSION}
|
|
- docker tag ${IMAGE_NAME}:latest ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:latest
|
|
- echo "*** Pushing ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:${OVERLEAF_VERSION}"
|
|
- docker push --quiet ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:${OVERLEAF_VERSION}
|
|
- echo "*** Pushing ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:latest"
|
|
- docker push --quiet ${CI_REGISTRY}/${CI_PROJECT_PATH}/${IMAGE_NAME}:latest
|
|
|
|
- echo $GITEA_REGISTRY_PASSWORD | docker login -u $GITEA_REGISTRY_USER --password-stdin $GITEA_REGISTRY
|
|
- docker tag ${IMAGE_NAME}:${OVERLEAF_VERSION} ${GITEA_IMAGE_NAME}:${OVERLEAF_VERSION}
|
|
- docker tag ${IMAGE_NAME}:latest ${GITEA_IMAGE_NAME}:latest
|
|
- echo "*** Pushing ${GITEA_IMAGE_NAME}:${OVERLEAF_VERSION}"
|
|
- docker push --quiet ${GITEA_IMAGE_NAME}:${OVERLEAF_VERSION}
|
|
- echo "*** Pushing ${GITEA_IMAGE_NAME}:latest"
|
|
- docker push --quiet ${GITEA_IMAGE_NAME}:latest
|
|
|
|
- echo $DOCKER_HUB_PASSWORD | docker login -u $DOCKER_HUB_USER --password-stdin
|
|
- docker tag ${IMAGE_NAME}:${OVERLEAF_VERSION} ${DOCKER_HUB_IMAGE_NAME}:${OVERLEAF_VERSION}
|
|
- docker tag ${IMAGE_NAME}:latest ${DOCKER_HUB_IMAGE_NAME}:latest
|
|
- echo "*** Pushing ${DOCKER_HUB_IMAGE_NAME}:${OVERLEAF_VERSION}"
|
|
- docker push --quiet ${DOCKER_HUB_IMAGE_NAME}:${OVERLEAF_VERSION}
|
|
- echo "*** Pushing ${DOCKER_HUB_IMAGE_NAME}:latest"
|
|
- docker push --quiet ${DOCKER_HUB_IMAGE_NAME}:latest
|
|
|
|
artifacts:
|
|
paths:
|
|
- $ARCHIVED_IMAGE
|
|
- version.txt
|
|
expire_in: 7 days
|