Compare commits

...
Author SHA1 Message Date
CSRBot 4d6aaad3d9 chore(deps): update actions/checkout action to v4.4.0
Lint Markdown files / markdown-lint (pull_request) Successful in 11s
Build / build-arch-linux (pull_request) Successful in 16m10s
2026-08-21 12:10:55 +00:00
CSRBot bb875c9fdc Merge pull request 'chore(deps): pin dependencies' (#2) from renovate/pin-dependencies into master
Lint Markdown files / markdown-lint (push) Successful in 11s
Build / build-arch-linux (push) Successful in 14m45s
2026-08-21 09:10:42 +00:00
CSRBot 22c771052b chore(deps): pin dependencies
Lint Markdown files / markdown-lint (pull_request) Successful in 23s
Build / build-arch-linux (pull_request) Successful in 16m36s
2026-08-21 09:10:32 +00:00
volker.raschek 86c2fb394b fix(ci): rename workflow
Lint Markdown files / markdown-lint (push) Successful in 9s
Build / build-arch-linux (push) Canceled after 0s
2026-08-21 10:36:15 +02:00
volker.raschekandCopilot 84c5fb141d feat(auto-release): use unique timestamp-based tag pattern
Lint Markdown files / markdown-lint (push) Successful in 11s
Build / build-arch-linux (push) Canceled after 13m5s
Replace the YYYY-MM date format with a YYYYMMDDHHmmSS.run_id pattern
to guarantee unique tags and prevent conflicts when the cron schedule
triggers multiple times within the same month.

Co-authored-by: Copilot <copilot@github.com>
2026-08-21 10:35:29 +02:00
volker.raschek df71b11bf2 fix(Dockerfile): add textlive and textlive-doc pkg
Lint Markdown files / markdown-lint (push) Successful in 10s
Build / build-arch-linux (push) Successful in 15m47s
2026-08-21 10:25:18 +02:00
volker.raschekandCopilot f7bf720b6c refactor: simplify Makefile by removing unused targets and variables
Lint Markdown files / markdown-lint (push) Successful in 10s
Build / build-arch-linux (push) Successful in 4m26s
Remove container-image/delete and container-image/push targets as these operations are handled by
CI workflows. Consolidate LATEX_IMAGE_REGISTRY_USER and LATEX_IMAGE_NAMESPACE into a single
LATEX_IMAGE_REPOSITORY variable and drop the unused CONTAINER_RUNTIME definition.

Co-authored-by: Copilot <copilot@github.com>
2026-08-21 10:10:30 +02:00
volker.raschekandCopilot e5a5630ef8 feat(ci): add scheduled auto-release workflow
Lint Markdown files / markdown-lint (push) Successful in 52s
Update Docker Hub Description / update-description-on-hub-docker-io (push) Successful in 16s
Build / build-arch-linux (push) Successful in 5m9s
Release / push-arch-linux (push) Successful in 7m44s
Release / sync-to-hub-docker-io (push) Successful in 8m0s
Introduce a cron-triggered auto-release workflow that runs on the second Sunday of each month,
creating a time-based tag in YYYY-MM format and dispatching the release workflow.

The release workflow is extended with a workflow_dispatch trigger accepting a tag input, so it can be
invoked both by tag pushes and programmatically by the auto-release. Version extraction is unified
via a dedicated step using `inputs.tag || github.ref_name` in both jobs.

Co-authored-by: Copilot <copilot@github.com>
2026-08-21 09:45:28 +02:00
volker.raschek b66dac1342 docs(README): use git.cryptic.systems instead of docker.io
Lint Markdown files / markdown-lint (push) Successful in 15s
Build / build-arch-linux (push) Successful in 2m13s
2025-05-13 18:55:11 +02:00
volker.raschek 6f4e26d27a docs(README): migrate from docker.io to git.cryptic.systems
Lint Markdown files / markdown-lint (push) Successful in 16s
Update Docker Hub Description / update-description-on-hub-docker-io (push) Successful in 13s
Build / build-arch-linux (push) Successful in 11m39s
2025-05-12 18:19:07 +02:00
volker.raschek 94a88ca4eb fix: remove texlive-most
Lint Markdown files / markdown-lint (push) Successful in 16s
Build / build-arch-linux (push) Has been cancelled
2025-05-12 18:05:28 +02:00
volker.raschek 458bee010a fix(ci): replace drone with gitea actions
Lint Markdown files / markdown-lint (push) Successful in 13s
Update Docker Hub Description / update-description-on-hub-docker-io (push) Successful in 10s
Build / build-arch-linux (push) Failing after 15m2s
2025-05-09 11:38:53 +02:00
volker.raschek c9163f2360 style(markdownlint): update configuration 2025-05-09 11:27:51 +02:00
volker.raschek 4032897913 docs(README): remove drone badge 2025-05-08 21:47:25 +02:00
volker.raschek 2e94c19840 chore(ci): use upstream container image registry
continuous-integration/drone/push Build encountered an error
2025-04-02 21:32:02 +02:00
volker.raschek 9b503252f4 chore(ci): use container image mirror
continuous-integration/drone/push Build encountered an error
2025-04-02 09:54:30 +02:00
volker.raschek 63fd6810bf feat(ci): use git.cryptic.systems/volker.raschek/markdownlint v0.33.0
continuous-integration/drone/push Build is failing
2023-06-08 19:38:44 +02:00
volker.raschek 9696d303c9 fix: remove arch linux pkgs from cache
continuous-integration/drone/push Build is failing
2023-06-08 18:34:14 +02:00
volker.raschek 01ddea84ec fix(ci): resource limits
continuous-integration/drone/push Build encountered an error
2022-05-22 13:09:39 +02:00
volker.raschek 59fd1c360e fix(ci): use fully qualified image name
continuous-integration/drone/push Build encountered an error
2022-05-22 13:01:59 +02:00
volker.raschek 45b0f0abb0 fix(ci): use gitea to sync repo with github
continuous-integration/drone/push Build is failing
2022-05-03 17:43:28 +02:00
volker.raschek c8488d5ab3 fix: install correct pygments package for debian and ubuntu
continuous-integration/drone/push Build is passing
2022-03-03 22:30:37 +01:00
16 changed files with 280 additions and 602 deletions
-408
View File
@@ -1,408 +0,0 @@
---
kind: pipeline
type: kubernetes
name: linter
platform:
os: linux
arch: amd64
steps:
- name: markdown lint
commands:
- markdownlint *.md
image: docker.io/volkerraschek/markdownlint:0.30.0
resources:
limits:
cpu: 50
memory: 50M
- name: email-notification
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
resources:
limits:
cpu: 50
memory: 25M
when:
status:
- changed
- failure
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: docker
name: archlinux
platform:
os: linux
arch: amd64
steps:
- name: archlinux
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh archlinux latest
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
trigger:
when:
branch:
- master
event:
- push
- cron
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
---
kind: pipeline
type: docker
name: centos
platform:
os: linux
arch: amd64
steps:
- name: centos7
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh centos 7
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
trigger:
when:
branch:
- master
event:
- push
- cron
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
---
kind: pipeline
type: docker
name: debian
platform:
os: linux
arch: amd64
steps:
- name: 8-slim
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh debian 8-slim
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: 9-slim
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh debian 9-slim
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: 10-slim
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh debian 10-slim
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: 11-slim
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh debian 11-slim
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
trigger:
when:
branch:
- master
event:
- push
- cron
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
---
kind: pipeline
type: docker
name: fedora
platform:
os: linux
arch: amd64
steps:
- name: fedora-33
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh fedora 33
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: fedora-34
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh fedora 34
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
trigger:
when:
branch:
- master
event:
- push
- cron
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
---
kind: pipeline
type: docker
name: ubuntu
platform:
os: linux
arch: amd64
steps:
- name: ubuntu-16.04
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh ubuntu 16.04
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: ubuntu-18.04
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh ubuntu 18.04
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: ubuntu-20.04
image: docker.io/volkerraschek/build-image:latest
commands:
- ./build.sh ubuntu 20.04
environment:
CONTAINER_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
trigger:
when:
branch:
- master
event:
- push
- cron
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
---
kind: pipeline
type: kubernetes
name: sync
platform:
os: linux
arch: amd64
steps:
- name: github
image: docker.io/appleboy/drone-git-push:latest
resources:
limits:
cpu: 50
memory: 25M
settings:
branch: master
remote: ssh://git@github.com/volker-raschek/latex-docker.git
force: true
ssh_key:
from_secret: ssh_key
- name: email-notification
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
resources:
limits:
cpu: 50
memory: 25M
when:
status:
- changed
- failure
trigger:
event:
- push
repo:
- volker.raschek/latex-docker
+54
View File
@@ -0,0 +1,54 @@
name: Auto release
on:
schedule:
# Second Sunday of every month at 00:00 UTC
- cron: "0 0 8-14 * 0"
workflow_dispatch: {}
env:
GIT_EMAIL: noreply@cryptic.systems
GIT_USER: CSRBot
jobs:
create_tag_and_release:
permissions:
actions: write
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
with:
fetch-depth: 0
- name: Create and push new tag
id: create_tag
run: |
defined_tag="$(date -u +"%Y%m%d%H%M%S").${{ github.run_id }}"
echo "defined_tag=${defined_tag}" >> $GITHUB_OUTPUT
echo "New tag: ${defined_tag}"
git config --local user.name "${GIT_USER}"
git config --local user.email "${GIT_EMAIL}"
git tag -a "${defined_tag}" -m "${defined_tag}"
git push origin "${defined_tag}"
- name: Trigger "Release" workflow
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const workflowFileName = 'release.yaml';
const defaultBranch = context.payload.repository.default_branch;
const definedTag = '${{ steps.create_tag.outputs.defined_tag }}';
await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: workflowFileName,
ref: defaultBranch,
inputs: {
tag: definedTag
}
});
+29
View File
@@ -0,0 +1,29 @@
name: Build
on:
pull_request:
types:
- opened
- reopened
- synchronize
push:
branches:
- master
workflow_dispatch: {}
jobs:
build-arch-linux:
runs-on: ubuntu-latest-amd64
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Build image
run: |
TAG=latest
docker buildx build \
--file Dockerfile.archlinux \
--tag git.cryptic.systems/volker.raschek/latex:${TAG}-archlinux \
.
+22
View File
@@ -0,0 +1,22 @@
name: 'Lint Markdown files'
on:
pull_request:
types:
- opened
- reopened
- synchronize
push:
branches:
- master
workflow_dispatch: {}
jobs:
markdown-lint:
runs-on:
- ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: DavidAnson/markdownlint-cli2-action@05f32210e84442804257b2a6f20b273450ec8265 # v19.1.0
with:
globs: '**/*.md'
+83
View File
@@ -0,0 +1,83 @@
name: Release
on:
push:
tags:
- "**"
workflow_dispatch:
inputs:
tag:
description: "Tag which should be released"
type: string
required: true
jobs:
push-arch-linux:
runs-on: ubuntu-latest-amd64
steps:
- id: version_extraction
name: Extract git tag
run: |
VERSION="${{ inputs.tag || github.ref_name }}"
VERSION="${VERSION#refs/*/}"
echo "Version (raw): ${VERSION}"
echo "Version (cleaned): ${VERSION/v/}"
echo "version_raw=${VERSION}" >> $GITHUB_OUTPUT
echo "version_cleaned=${VERSION/v/}" >> $GITHUB_OUTPUT
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
with:
fetch-tags: true
ref: "${{ steps.version_extraction.outputs.version_raw }}"
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
registry: git.cryptic.systems
username: ${{ github.repository_owner }}
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
- name: Build and push image
run: |
TAG=${{ steps.version_extraction.outputs.version_cleaned }}
docker buildx build \
--file Dockerfile.archlinux \
--push \
--tag git.cryptic.systems/volker.raschek/latex:${TAG}-archlinux \
.
sync-to-hub-docker-io:
needs:
- push-arch-linux
runs-on: ubuntu-latest
steps:
- id: version_extraction
name: Extract git tag
run: |
VERSION="${{ inputs.tag || github.ref_name }}"
VERSION="${VERSION#refs/*/}"
echo "version_cleaned=${VERSION/v/}" >> $GITHUB_OUTPUT
- name: Copy images to docker.io
run: |
TAG=${{ steps.version_extraction.outputs.version_cleaned }}
apt-get update --yes
apt-get install --yes skopeo
for suffix in archlinux; do
skopeo copy \
--all \
--dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \
--dest-username ${{ secrets.DOCKER_IO_USERNAME }} \
--src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \
--src-username volker.raschek \
docker://git.cryptic.systems/volker.raschek/latex:${TAG}-${suffix} \
docker://docker.io/volkerraschek/latex:${TAG}-${suffix}
done
@@ -0,0 +1,22 @@
name: Update Docker Hub Description
on:
push:
branches:
- master
paths:
- README.md
workflow_dispatch: {}
jobs:
update-description-on-hub-docker-io:
runs-on:
- ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4.0.2
with:
username: ${{ secrets.DOCKER_IO_USERNAME }}
password: ${{ secrets.DOCKER_IO_PASSWORD }}
repository: volkerraschek/latex
readme-filepath: README.md
+3 -11
View File
@@ -45,19 +45,17 @@ MD012:
# MD013/line-length - Line length # MD013/line-length - Line length
MD013: MD013:
# Number of characters # Number of characters
line_length: 80 line_length: 120
# Number of characters for headings # Number of characters for headings
heading_line_length: 80 heading_line_length: 120
# Number of characters for code blocks # Number of characters for code blocks
code_block_line_length: 80 code_block_line_length: 120
# Include code blocks # Include code blocks
code_blocks: false code_blocks: false
# Include tables # Include tables
tables: false tables: false
# Include headings # Include headings
headings: true headings: true
# Include headings
headers: true
# Strict length checking # Strict length checking
strict: false strict: false
# Stern length checking # Stern length checking
@@ -70,11 +68,6 @@ MD022:
# Blank lines below heading # Blank lines below heading
lines_below: 1 lines_below: 1
# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
MD024:
# Only check sibling headings
allow_different_nesting: true
# MD025/single-title/single-h1 - Multiple top-level headings in the same document # MD025/single-title/single-h1 - Multiple top-level headings in the same document
MD025: MD025:
# Heading level # Heading level
@@ -129,7 +122,6 @@ MD041:
MD044: MD044:
# List of proper names # List of proper names
names: [] names: []
# - some-thing
# Include code blocks # Include code blocks
code_blocks: false code_blocks: false
+4 -3
View File
@@ -1,4 +1,3 @@
# Base-Image
FROM docker.io/library/archlinux:latest FROM docker.io/library/archlinux:latest
# Labels # Labels
@@ -13,9 +12,11 @@ RUN pacman --sync --noconfirm \
gnuplot \ gnuplot \
make \ make \
python-pygments \ python-pygments \
texlive \
texlive-bin \ texlive-bin \
texlive-lang \ texlive-doc \
texlive-most texlive-lang && \
rm --recursive --force /var/cache/pacman/pkg
ENV PATH=/usr/bin/vendor_perl:${PATH} ENV PATH=/usr/bin/vendor_perl:${PATH}
-25
View File
@@ -1,25 +0,0 @@
# Build-Arguments
ARG TAG=latest
# Base-Image
FROM docker.io/library/centos:${TAG}
# Labels
LABEL maintainer="Markus Pesch <markus.pesch@cryptic.systems>"
# Runs
RUN yum update --assumeyes
RUN yum install --assumeyes \
biber \
curl \
git \
gnuplot \
latexmk \
make \
python-pygments \
texlive \
texlive-*.noarch
# Workspace
WORKDIR /workspace
VOLUME [ "/workspace" ]
-34
View File
@@ -1,34 +0,0 @@
# Build-Arguments
ARG TAG=latest
# Base-Image
FROM docker.io/library/debian:${TAG}
# Labels
LABEL maintainer="Markus Pesch <markus.pesch@cryptic.systems>"
# Environment
ENV DEBIAN_FRONTEND="noninteractive"
# Runs
RUN apt-get update
RUN apt-get upgrade --yes
RUN apt-get install --yes \
biber \
curl \
git \
gnuplot \
latexmk \
make \
texlive-full
# version specific packages
RUN if [ $(cat /etc/debian_version) != "11.0" ]; then apt-get install --yes python-pygments; fi
RUN if [ $(cat /etc/debian_version) = "11.0" ]; then apt-get install --yes python3-pygments; fi
# remove dpkg lists
RUN rm --recursive --force /var/lib/apt/lists/*
# Workspace
WORKDIR /workspace
VOLUME [ "/workspace" ]
-26
View File
@@ -1,26 +0,0 @@
# Build-Arguments
ARG TAG=latest
# Base-Image
FROM docker.io/library/fedora:${TAG}
# Labels
LABEL maintainer="Markus Pesch <markus.pesch@cryptic.systems>"
# Runs
RUN yum update --assumeyes
RUN yum install --assumeyes \
biber \
curl \
git \
gnuplot \
latexmk \
make \
python-pygments \
texlive-collection-bibtexextra \
texlive-collection-fontutils \
texlive-collection-langeuropean
# Workspace
WORKDIR /workspace
VOLUME [ "/workspace" ]
-35
View File
@@ -1,35 +0,0 @@
# Build-Arguments
ARG TAG=latest
# Base-Image
FROM docker.io/library/ubuntu:${TAG}
# Labels
LABEL maintainer="Markus Pesch <markus.pesch@cryptic.systems>"
# Environment
ENV DEBIAN_FRONTEND="noninteractive"
# Runs
RUN apt-get update
RUN apt-get upgrade --yes
RUN apt-get install --yes \
biber \
curl \
git \
gnuplot \
latexmk \
make \
texlive-full \
xindy
# version specific packages
RUN if [ $(cat /etc/debian_version) != "bullseye/sid" ]; then apt-get install --yes python-pygments; fi
RUN if [ $(cat /etc/debian_version) = "bullseye/sid" ]; then apt-get install --yes python3-pygments; fi
# remove dpkg lists
RUN rm --recursive --force /var/lib/apt/lists/*
# Workspace
WORKDIR /workspace
VOLUME [ "/workspace" ]
+22
View File
@@ -0,0 +1,22 @@
# ArchLinux
LATEX_IMAGE_REGISTRY_HOST?=git.cryptic.systems
LATEX_IMAGE_REPOSITORY?=volker.raschek/latex
LATEX_IMAGE_VERSION?=latest
LATEX_IMAGE_FULLY_QUALIFIED=${LATEX_IMAGE_REGISTRY_HOST}/${LATEX_IMAGE_REPOSITORY}:${LATEX_IMAGE_VERSION}
# BUILD LATEX CONTAINER IMAGE
# ==============================================================================
PHONY+=container-image/build/arch-linux
container-image/build/arch-linux:
podman build \
--file Dockerfile.archlinux \
--no-cache \
--pull \
--tag ${LATEX_IMAGE_FULLY_QUALIFIED} \
.
# PHONY
# ==============================================================================
# Declare the contents of the PHONY variable as phony. We keep that information
# in a variable so we can use it in if_changed.
.PHONY: ${PHONY}
+31 -43
View File
@@ -1,70 +1,58 @@
# Docker Latex # Latex
[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/latex-docker/status.svg)](https://drone.cryptic.systems/volker.raschek/latex-docker)
[![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/latex)](https://hub.docker.com/r/volkerraschek/latex) [![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/latex)](https://hub.docker.com/r/volkerraschek/latex)
This repository, hosted on The repository, hosted on [git.cryptic.systems](https://git.cryptic.systems/volker.raschek/latex-docker), contains
[git.cryptic.systems](https://git.cryptic.systems/volker.raschek/latex-docker), Dockerfiles to build container images based on different base images. Any container image has the tex compiler and the
contains Dockerfiles to build different container images based on differend base minted package included. The main goal of all container image is to compile the text source code with highlighting
images. Any container image has the tex compiler and the minted package provided by minted into a PDF file.
included. Throught this are all container images able to compile tex source code
with source code highlighting.
## Images ## Images
Available Images: Available Images:
- volkerraschek/latex:latest-archlinux - `git.cryptic.systems/volker.raschek/latex:latest-archlinux`
- volkerraschek/latex:latest-debian8-slim
- volkerraschek/latex:latest-debian9-slim
- volkerraschek/latex:latest-debian10-slim
- volkerraschek/latex:latest-fedora-30
- volkerraschek/latex:latest-fedora-31
- volkerraschek/latex:latest-centos-7
- volkerraschek/latex:latest-ubuntu-16.04
- volkerraschek/latex:latest-ubuntu-18.04
- volkerraschek/latex:latest-ubuntu-20.04
You can find a complete list of all docker images based on different You can find a complete list of all docker images based on different distributions on [Docker
distributions on [Docker Hub](https://hub.docker.com/r/volkerraschek/latex-docker/tags). Hub](https://hub.docker.com/r/volkerraschek/latex-docker/tags).
## Usage ## Usage
### Latexmk ### Latexmk
Here is an example based on ubuntu 18.04 to compile a PDF file with `latexmk` Here is an example based on ubuntu 18.04 to compile a PDF file with `latexmk` from `index.tex`. Run this command in your
from `index.tex`. Run this command in your root directory of your Latex files or root directory of your Latex files or change the `volume` option with the `${PWD}` variable.
change the `volume` option with the `${PWD}` variable.
```bash ```bash
$ docker run \ $ podman run \
--rm \ --rm \
--user="$(shell id -u):$(shell id -g)" \
--net="none" \ --net="none" \
--volume="${PWD}:/workspace" volkerraschek/latex:latest-ubuntu-18.04 \ --workdir="${PWD}" \
latexmk \ --volume="${PWD}:${PWD}" \
-shell-escape \ git.cryptic.systems/volker.raschek/latex:latest-archlinux \
-synctex=1 \ latexmk \
-interaction=nonstopmode \ -shell-escape \
-file-line-error \ -synctex=1 \
-pdf index.tex -interaction=nonstopmode \
-file-line-error \
-pdf index.tex
``` ```
### pdflatex ### pdflatex
Here is a example based on ubuntu 18.04 to compile a PDF file with `pdflatex` Here is a example based on ubuntu 18.04 to compile a PDF file with `pdflatex` from `index.tex`. Run this command in
from `index.tex`. Run this command in your root directory of your Latex files your root directory of your Latex files or change the `volume` option with the `${PWD}` variable.
or change the `volume` option with the `${PWD}` variable.
```bash ```bash
$ docker run \ $ podman run \
--rm \ --rm \
--user="$(shell id -u):$(shell id -g)" \
--net="none" \ --net="none" \
--volume="${PWD}:/workspace" volkerraschek/latex:latest-ubuntu-18.04 \ --workdir="${PWD}" \
pdflatex \ --volume="${PWD}:${PWD}" \
-shell-escape \ git.cryptic.systems/volker.raschek/latex:latest-archlinux \
-synctex=1 \ pdflatex \
-interaction=nonstopmode \ -shell-escape \
-enable-write18 index.tex -synctex=1 \
-interaction=nonstopmode \
-enable-write18 index.tex
``` ```
-16
View File
@@ -1,16 +0,0 @@
#!/bin/bash
set -ex
OS=${1:-archlinux}
VERSION=${2:-latest}
TAG=latest-${OS}-${VERSION}
if [ "${OS}" = "archlinux" ]; then
TAG=latest-${OS}
fi
docker build --build-arg TAG=${VERSION} --file Dockerfile.${OS} --tag volkerraschek/latex:${TAG} .
echo ${CONTAINER_IMAGE_REGISTRY_PASSWORD} | docker login docker.io --username volkerraschek --password-stdin
docker push volkerraschek/latex:${TAG}
docker image rm volkerraschek/latex:${TAG}
+9
View File
@@ -0,0 +1,9 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>volker.raschek/renovate-config:default#master",
"local>volker.raschek/renovate-config:container#master",
"local>volker.raschek/renovate-config:actions#master",
"local>volker.raschek/renovate-config:regexp#master"
]
}