🔧 Update configuration files 🔧

Dockerfile
dockerfs/
.gitea/workflows/docker.yaml
.gitea/workflows/publish.yaml
.github/workflows/docker.yaml
.github/workflows/publish.yaml
README.md
rootfs/root/docker/setup/00-init.sh
rootfs/root/docker/setup/01-system.sh
rootfs/root/docker/setup/02-packages.sh
rootfs/root/docker/setup/03-files.sh
rootfs/root/docker/setup/04-users.sh
rootfs/root/docker/setup/05-custom.sh
rootfs/root/docker/setup/06-post.sh
rootfs/root/docker/setup/07-cleanup.sh
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/pkmgr
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/share/template-files/config/env/default.sample
rootfs/usr/local/share/template-files/config/env/examples/00-directory.sh
rootfs/usr/local/share/template-files/config/env/examples/addresses.sh
rootfs/usr/local/share/template-files/config/env/examples/certbot.sh
rootfs/usr/local/share/template-files/config/env/examples/couchdb.sh
rootfs/usr/local/share/template-files/config/env/examples/dockerd.sh
rootfs/usr/local/share/template-files/config/env/examples/global.sh
rootfs/usr/local/share/template-files/config/env/examples/healthcheck.sh
rootfs/usr/local/share/template-files/config/env/examples/mariadb.sh
rootfs/usr/local/share/template-files/config/env/examples/mongodb.sh
rootfs/usr/local/share/template-files/config/env/examples/networking.sh
rootfs/usr/local/share/template-files/config/env/examples/other.sh
rootfs/usr/local/share/template-files/config/env/examples/php.sh
rootfs/usr/local/share/template-files/config/env/examples/postgres.sh
rootfs/usr/local/share/template-files/config/env/examples/redis.sh
rootfs/usr/local/share/template-files/config/env/examples/services.sh
rootfs/usr/local/share/template-files/config/env/examples/ssl.sh
rootfs/usr/local/share/template-files/config/env/examples/supabase.sh
rootfs/usr/local/share/template-files/config/env/examples/webservers.sh
rootfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh
rootfs/usr/local/share/template-files/config/.gitkeep
rootfs/usr/local/share/template-files/data/.gitkeep
rootfs/usr/local/share/template-files/defaults/.gitkeep
This commit is contained in:
casjay
2026-01-15 23:46:36 -05:00
parent 7c2eb91c01
commit 81302e6f4d
40 changed files with 257 additions and 66 deletions

View File

@@ -1,9 +1,15 @@
name: archlinux
on: push
on:
push:
branches:
- main
- master
schedule:
- cron: '0 2 * * 1'
jobs:
release-archlinux:
build-and-push:
runs-on: act_runner
container:
image: catthehacker/ubuntu:act-latest
@@ -16,26 +22,21 @@ jobs:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Get Meta
id: meta
run: |
echo DATE_TAG=$(date +'%y%m') >> $GITHUB_OUTPUT
echo REPO_VERSION=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT
echo DOCKER_ORG=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $1}') >> $GITHUB_OUTPUT
echo DOCKER_TAG=$([ -n "$DOCKER_TAG" ] && echo ${DOCKER_TAG} || echo "latest") >> $GITHUB_OUTPUT
echo DOCKER_HUB=$([ -n "$DOCKER_HUB" ] && echo ${DOCKER_HUB} || echo "docker.io") >> $GITHUB_OUTPUT
echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}' | sed 's|^docker-||g') >> $GITHUB_OUTPUT
echo "$DOCKER_HUB/$DOCKER_ORG/$REPO_NAME:$DOCKER_TAG"
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v2
echo "BUILD_DATE=$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
echo "DATE_TAG=$(date +'%y%m')" >> $GITHUB_OUTPUT
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
password: ${{ secrets.DOCKER_TOKEN }}
username: ${{ secrets.DOCKER_USERNAME }}
registry: ${{ steps.meta.outputs.DOCKER_HUB }}
registry: docker.io
- name: Build and push
uses: docker/build-push-action@v4
@@ -46,6 +47,39 @@ jobs:
linux/amd64
linux/arm64
push: true
tags: | # replace it with your local IP and tags
${{ steps.meta.outputs.DOCKER_HUB }}/${{ steps.meta.outputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.DATE_TAG }}
${{ steps.meta.outputs.DOCKER_HUB }}/${{ steps.meta.outputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.DOCKER_TAG }}
provenance: false
build-args: |
IMAGE_NAME=archlinux
IMAGE_VERSION=latest
IMAGE_REPO=casjaysdev/archlinux
PHP_SERVER=archlinux
BUILD_DATE=${{ steps.meta.outputs.BUILD_DATE }}
BUILD_VERSION=${{ steps.meta.outputs.BUILD_DATE }}
PULL_URL=ghcr.io/dockersrc/archlinux
DISTRO_VERSION=base
CONTAINER_VERSION=USE_DATE
TIMEZONE=America/New_York
LANGUAGE=en_US.UTF-8
PHP_VERSION=system
NODE_VERSION=system
NODE_MANAGER=system
SERVICE_PORT=
EXPOSE_PORTS=
WWW_ROOT_DIR=/usr/local/share/httpd/default
DEFAULT_FILE_DIR=/usr/local/share/template-files
DEFAULT_DATA_DIR=/usr/local/share/template-files/data
DEFAULT_CONF_DIR=/usr/local/share/template-files/config
DEFAULT_TEMPLATE_DIR=/usr/local/share/template-files/defaults
annotations: |
org.opencontainers.image.title=casjaysdev/archlinux
org.opencontainers.image.description=Containerized version of casjaysdev/archlinux
org.opencontainers.image.vendor=CasjaysDev
org.opencontainers.image.authors=CasjaysDev <docker-admin@casjaysdev.pro>
org.opencontainers.image.url=https://github.com/${{ github.repository }}
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.version=latest
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.created=${{ github.event.head_commit.timestamp }}
tags: |
docker.io/casjaysdev/archlinux:latest
docker.io/casjaysdev/archlinux:${{ steps.meta.outputs.DATE_TAG }}

View File

@@ -0,0 +1,63 @@
name: archlinux-base
on:
push:
branches:
- main
- master
schedule:
- cron: '0 2 2 * *'
jobs:
build-and-push:
runs-on: act_runner
container:
image: catthehacker/ubuntu:act-latest
env:
RUNNER_TOOL_CACHE: /toolcache
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Get Meta
id: meta
run: |
echo "BUILD_DATE=$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
echo "DATE_TAG=$(date +'%y%m')" >> $GITHUB_OUTPUT
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
password: ${{ secrets.DOCKER_TOKEN }}
username: ${{ secrets.DOCKER_USERNAME }}
registry: docker.io
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile.base
platforms: |
linux/amd64
linux/arm64
push: true
provenance: false
annotations: |
org.opencontainers.image.title=casjaysdev/archlinux
org.opencontainers.image.description=Containerized version of casjaysdev/archlinux
org.opencontainers.image.vendor=CasjaysDev
org.opencontainers.image.authors=CasjaysDev <docker-admin@casjaysdev.pro>
org.opencontainers.image.url=https://github.com/${{ github.repository }}
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.version=latest
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.created=${{ github.event.head_commit.timestamp }}
tags: |
docker.io/casjaysdev/archlinux:latest
docker.io/casjaysdev/archlinux:${{ steps.meta.outputs.DATE_TAG }}

86
.github/workflows/docker.yaml vendored Normal file
View File

@@ -0,0 +1,86 @@
name: archlinux
on:
push:
branches:
- main
- master
pull_request:
schedule:
- cron: '0 2 * * 1'
workflow_dispatch:
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Get Meta
id: meta
run: |
echo "BUILD_DATE=$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
echo "DATE_TAG=$(date +'%y%m')" >> $GITHUB_OUTPUT
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
platforms: |
linux/amd64
linux/arm64
push: ${{ github.event_name != 'pull_request' }}
provenance: false
build-args: |
IMAGE_NAME=archlinux
IMAGE_VERSION=latest
IMAGE_REPO=${{ github.repository }}
PHP_SERVER=archlinux
BUILD_DATE=${{ steps.meta.outputs.BUILD_DATE }}
BUILD_VERSION=${{ steps.meta.outputs.BUILD_DATE }}
PULL_URL=ghcr.io/dockersrc/archlinux
DISTRO_VERSION=base
CONTAINER_VERSION=USE_DATE
TIMEZONE=America/New_York
LANGUAGE=en_US.UTF-8
PHP_VERSION=system
NODE_VERSION=system
NODE_MANAGER=system
SERVICE_PORT=
EXPOSE_PORTS=
WWW_ROOT_DIR=/usr/local/share/httpd/default
DEFAULT_FILE_DIR=/usr/local/share/template-files
DEFAULT_DATA_DIR=/usr/local/share/template-files/data
DEFAULT_CONF_DIR=/usr/local/share/template-files/config
DEFAULT_TEMPLATE_DIR=/usr/local/share/template-files/defaults
annotations: |
org.opencontainers.image.title=${{ github.repository }}
org.opencontainers.image.description=Containerized version of ${{ github.repository }}
org.opencontainers.image.vendor=CasjaysDev
org.opencontainers.image.authors=CasjaysDev <docker-admin@casjaysdev.pro>
org.opencontainers.image.url=https://github.com/${{ github.repository }}
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.version=latest
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.created=${{ github.event.head_commit.timestamp }}
tags: |
ghcr.io/${{ github.repository }}:latest
ghcr.io/${{ github.repository }}:${{ steps.meta.outputs.DATE_TAG }}

View File

@@ -1,17 +1,21 @@
name: archlinux-base
name: .-base
on:
push:
branches:
- main
- master
pull_request:
schedule:
- cron: '0 6 * * 1' # Runs every Monday at 6 AM UTC
- cron: '0 2 2 * *'
workflow_dispatch:
jobs:
archlinux-latest:
build-and-push:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
attestations: write
id-token: write
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -24,56 +28,60 @@ jobs:
- name: Get Meta
id: meta
env:
HUB: ghcr.io
ORG: dockersrc
TAG: ${{ vars.DOCKER_TAG }}
run: |
echo "DOCKER_HUB=$([ -n "$HUB" ] && echo $HUB || echo "ghcr.io")" >> $GITHUB_OUTPUT
echo "REPO_VERSION=$(git describe --tags --always | sed 's/^v//')" >> $GITHUB_OUTPUT
echo "DOCKER_TAG=$([ -n "$TAG" ] && echo $TAG || echo "base")" >> $GITHUB_OUTPUT
echo "DOCKER_ORG=$([ -n "$ORG" ] && echo "$ORG" || echo "dockersrc")" >> $GITHUB_OUTPUT
echo "REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}' | sed 's|^docker-||g')" >> $GITHUB_OUTPUT
echo "IMAGE_NAME=ghcr.io/${{ github.repository }}" >> $GITHUB_OUTPUT
echo "BUILD_DATE=$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
echo "DATE_TAG=$(date +'%y%m')" >> $GITHUB_OUTPUT
echo "IMAGE_REPO=${GITHUB_REPOSITORY}" >> $GITHUB_OUTPUT
# Login to Docker Hub to avoid rate limits
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# Login to GitHub Container Registry
- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: docker-meta
uses: docker/metadata-action@v5
with:
images: ${{ steps.meta.outputs.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=raw,value=${{ steps.meta.outputs.DOCKER_TAG }}
type=raw,value=latest,enable={{is_default_branch}}
type=schedule,pattern={{date 'YYYYMMDD'}}
- name: Build and push Docker image
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile.base
context: ./.
file: ././Dockerfile.base
platforms: |
linux/amd64
linux/arm64
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/amd64,linux/arm64
tags: ${{ steps.docker-meta.outputs.tags }}
labels: ${{ steps.docker-meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
provenance: false
build-args: |
IMAGE_NAME=.
IMAGE_VERSION=latest
IMAGE_REPO=${{ steps.meta.outputs.IMAGE_REPO }}
PHP_SERVER=.
BUILD_DATE=${{ steps.meta.outputs.BUILD_DATE }}
BUILD_VERSION=${{ steps.meta.outputs.BUILD_DATE }}
PULL_URL=.
DISTRO_VERSION=latest
CONTAINER_VERSION=
TIMEZONE=America/New_York
LANGUAGE=en_US.UTF-8
PHP_VERSION=system
NODE_VERSION=system
NODE_MANAGER=system
SERVICE_PORT=
EXPOSE_PORTS=
WWW_ROOT_DIR=/usr/local/share/httpd/default
DEFAULT_FILE_DIR=/usr/local/share/template-files
DEFAULT_DATA_DIR=/usr/local/share/template-files/data
DEFAULT_CONF_DIR=/usr/local/share/template-files/config
DEFAULT_TEMPLATE_DIR=/usr/local/share/template-files/defaults
annotations: |
org.opencontainers.image.title=${{ steps.meta.outputs.IMAGE_REPO }}
org.opencontainers.image.description=Containerized version of ${{ steps.meta.outputs.IMAGE_REPO }}
org.opencontainers.image.vendor=CasjaysDev
org.opencontainers.image.authors=CasjaysDev <docker-admin@casjaysdev.pro>
org.opencontainers.image.url=https://github.com/${{ github.repository }}
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.version=latest
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.created=${{ github.event.head_commit.timestamp }}
tags: |
ghcr.io/${{ steps.meta.outputs.IMAGE_REPO }}:latest
ghcr.io/${{ steps.meta.outputs.IMAGE_REPO }}:${{ steps.meta.outputs.DATE_TAG }}

View File

@@ -74,7 +74,7 @@ ENV HOSTNAME="casjaysdev-archlinux"
USER ${USER}
WORKDIR /root
COPY ./rootfs/usr/local/bin/. /usr/local/bin/
COPY ./dockerfs/usr/local/bin/. /usr/local/bin/
RUN set -e; \
echo "Updating the system and ensuring bash is installed"; \
@@ -125,7 +125,7 @@ RUN echo "Initializing packages before copying files to image"; \
if [ -f "/root/docker/setup/02-packages.sh" ];then echo "Running the packages script";/root/docker/setup/02-packages.sh||{ echo "Failed to execute /root/docker/setup/02-packages.sh" >&2 && exit 10; };echo "Done running the packages script";fi; \
echo ""
COPY ./rootfs/. /
COPY ./dockerfs/. /
COPY ./Dockerfile /root/docker/Dockerfile
RUN echo "Updating system files "; \

View File

@@ -21,7 +21,7 @@ dockermgr update os archlinux
```shell
mkdir -p "/var/lib/srv/root/docker/casjaysdev/archlinux/latest"
git clone "https://github.com/dockermgr/archlinux" "$HOME/.local/share/CasjaysDev/dockermgr/archlinux"
cp -Rfva "$HOME/.local/share/CasjaysDev/dockermgr/archlinux/rootfs/." "/var/lib/srv/root/docker/casjaysdev/archlinux/latest/"
cp -Rfva "$HOME/.local/share/CasjaysDev/dockermgr/archlinux/dockerfs/." "/var/lib/srv/root/docker/casjaysdev/archlinux/latest/"
docker run -d \
--restart always \
--privileged \