28 Commits

Author SHA1 Message Date
56e49fe154 add system users
All checks were successful
Docker Image CI / build (base) (push) Successful in 2m56s
Docker Image CI / build (base-dinit) (push) Successful in 4m6s
Docker Image CI / build (base-devel) (push) Successful in 3m1s
Docker Image CI / build (base-openrc) (push) Successful in 4m15s
Docker Image CI / build (base-s6) (push) Successful in 1m52s
Docker Image CI / build (base-runit) (push) Successful in 5m46s
2024-12-27 21:43:52 -05:00
2886391c5b pull build image from docker hub 2024-12-27 21:36:36 -05:00
c02a37725c consistent keyword casing
Some checks failed
Docker Image CI / build (base) (push) Failing after 42s
Docker Image CI / build (base-devel) (push) Failing after 39s
Docker Image CI / build (base-dinit) (push) Failing after 40s
Docker Image CI / build (base-openrc) (push) Failing after 39s
Docker Image CI / build (base-runit) (push) Failing after 39s
Docker Image CI / build (base-s6) (push) Failing after 38s
2024-12-27 20:52:32 -05:00
f3523a2cd3 arbitrary rebuild
Some checks failed
Docker Image CI / build (base-devel) (push) Failing after 38s
Docker Image CI / build (base-dinit) (push) Failing after 39s
Docker Image CI / build (base-openrc) (push) Failing after 38s
Docker Image CI / build (base-runit) (push) Failing after 38s
Docker Image CI / build (base-s6) (push) Failing after 38s
Docker Image CI / build (base) (push) Failing after 42s
2024-03-29 17:24:54 -05:00
925b8d281d re-add build schedule
All checks were successful
Docker Image CI / build (base) (push) Successful in 3m26s
Docker Image CI / build (base-devel) (push) Successful in 4m12s
Docker Image CI / build (base-dinit) (push) Successful in 3m12s
Docker Image CI / build (base-openrc) (push) Successful in 4m44s
Docker Image CI / build (base-runit) (push) Successful in 3m10s
Docker Image CI / build (base-s6) (push) Successful in 3m16s
please work
2024-03-20 14:24:01 -05:00
65341e4b84 removing schedule to add back later
All checks were successful
Docker Image CI / build (base) (push) Successful in 5m16s
Docker Image CI / build (base-devel) (push) Successful in 5m24s
Docker Image CI / build (base-dinit) (push) Successful in 4m8s
Docker Image CI / build (base-openrc) (push) Successful in 4m35s
Docker Image CI / build (base-runit) (push) Successful in 4m7s
Docker Image CI / build (base-s6) (push) Successful in 4m28s
2024-03-15 18:24:32 -05:00
bbb718ab30 Remove "Create latest tag" step
All checks were successful
Docker Hub Description / build (push) Successful in 10s
Docker Image CI / build (base) (push) Successful in 4m16s
Docker Image CI / build (base-devel) (push) Successful in 5m15s
Docker Image CI / build (base-dinit) (push) Successful in 4m29s
Docker Image CI / build (base-openrc) (push) Successful in 4m47s
Docker Image CI / build (base-runit) (push) Successful in 3m53s
Docker Image CI / build (base-s6) (push) Successful in 3m59s
2024-03-07 13:47:32 -05:00
5b5b9c4cc3 Fix "how to run" section 2024-03-07 13:46:52 -05:00
2785dbcd3d Triggered rebuild on 2024-02-27
All checks were successful
Docker Image CI / build (base) (push) Successful in 4m6s
Docker Image CI / build (base-devel) (push) Successful in 5m5s
Docker Image CI / build (base-dinit) (push) Successful in 3m13s
Docker Image CI / build (base-openrc) (push) Successful in 4m25s
Docker Image CI / build (base-runit) (push) Successful in 3m12s
Docker Image CI / build (base-s6) (push) Successful in 3m53s
2024-02-27 20:34:19 -05:00
549fcb94b6 disable buildx
Some checks failed
Docker Image CI / build (base) (push) Successful in 7m32s
Docker Image CI / build (base-devel) (push) Successful in 5m34s
Docker Image CI / build (base-dinit) (push) Successful in 4m12s
Docker Image CI / build (base-openrc) (push) Successful in 4m24s
Docker Image CI / build (base-s6) (push) Successful in 3m41s
Docker Image CI / build (base-runit) (push) Failing after 12m30s
2024-02-19 04:05:21 -05:00
e10c7022fb re-enable scheduled builds
Some checks failed
Docker Image CI / build (base) (push) Failing after 3m19s
Docker Image CI / build (base-devel) (push) Failing after 3m54s
Docker Image CI / build (base-openrc) (push) Has been cancelled
Docker Image CI / build (base-runit) (push) Has been cancelled
Docker Image CI / build (base-s6) (push) Has been cancelled
Docker Image CI / build (base-dinit) (push) Has been cancelled
2024-02-19 03:54:50 -05:00
04e4a5093c Add labels, build on PR, add base tag (#8)
Some checks failed
Docker Image CI / build (base-devel) (push) Has been cancelled
Docker Image CI / build (base-dinit) (push) Has been cancelled
Docker Image CI / build (base-openrc) (push) Has been cancelled
Docker Image CI / build (base-runit) (push) Has been cancelled
Docker Image CI / build (base-s6) (push) Has been cancelled
Docker Image CI / build (base) (push) Has been cancelled
Docker Hub Description / build (push) Successful in 8s
- Metadata added via labels
- PR will trigger a build but will not push
- New minimal base tag, replacing base-devel as the `latest` tag

Reviewed-on: #8
2024-02-19 09:53:40 +01:00
f035df06a1 Triggered rebuild on 2024-02-17
All checks were successful
Docker Image CI / build (devel) (push) Successful in 4m31s
Docker Image CI / build (dinit) (push) Successful in 3m35s
Docker Image CI / build (openrc) (push) Successful in 3m42s
Docker Image CI / build (runit) (push) Successful in 3m22s
Docker Image CI / build (s6) (push) Successful in 3m22s
2024-02-17 20:09:30 -05:00
268e4df510 use alias in Docker Hub readme
All checks were successful
Docker Image CI / build (devel) (push) Successful in 9m0s
Docker Image CI / build (dinit) (push) Successful in 5m24s
Docker Image CI / build (openrc) (push) Successful in 7m3s
Docker Image CI / build (runit) (push) Successful in 6m35s
Docker Image CI / build (s6) (push) Successful in 4m35s
Docker Hub Description / build (push) Successful in 9s
2024-02-10 19:19:44 -05:00
be35e1c544 Merge pull request 'Create action to update Docker readme' (#6) from docker-readme-pipeline into master
All checks were successful
Docker Image CI / build (devel) (push) Successful in 3m15s
Docker Image CI / build (dinit) (push) Successful in 2m29s
Docker Image CI / build (openrc) (push) Successful in 2m23s
Docker Image CI / build (runit) (push) Successful in 2m9s
Docker Image CI / build (s6) (push) Successful in 2m9s
Docker Hub Description / build (push) Successful in 6s
Reviewed-on: #6
2024-02-10 07:34:08 +01:00
84f57afe42 update conditions 2024-02-10 01:32:54 -05:00
54d67e3818 push Docker Hub description
All checks were successful
Docker Hub Description / build (push) Successful in 14s
maybe this works
2024-02-10 01:31:28 -05:00
2289204113 add purpose 2024-02-09 13:01:39 -05:00
646b27c9b4 add readme for Docker Hub 2024-02-08 20:17:06 -05:00
cb80995d9a Merge pull request 'feature: push images to Docker Hub' (#4) from dockerhub into master
All checks were successful
Docker Image CI / build (devel) (push) Successful in 2m57s
Docker Image CI / build (dinit) (push) Successful in 2m17s
Docker Image CI / build (openrc) (push) Successful in 2m21s
Docker Image CI / build (runit) (push) Successful in 2m1s
Docker Image CI / build (s6) (push) Successful in 2m5s
Reviewed-on: #4
2024-02-09 00:47:19 +01:00
a3b3ee7bdf Fix step name, remove feature branch 2024-02-08 18:16:13 -05:00
3d4337409a publish to new dockerhub image
All checks were successful
Docker Image CI / build (devel) (push) Successful in 2m48s
Docker Image CI / build (dinit) (push) Successful in 2m42s
Docker Image CI / build (openrc) (push) Successful in 2m20s
Docker Image CI / build (runit) (push) Successful in 2m7s
Docker Image CI / build (s6) (push) Successful in 2m30s
2024-02-08 18:09:36 -05:00
32715458f5 push to Docker Hub 2024-02-08 18:08:08 -05:00
0dfec54557 build on demand
All checks were successful
Docker Image CI / build (devel) (push) Successful in 2m6s
Docker Image CI / build (dinit) (push) Successful in 1m55s
Docker Image CI / build (openrc) (push) Successful in 1m44s
Docker Image CI / build (runit) (push) Successful in 1m34s
Docker Image CI / build (s6) (push) Successful in 1m34s
2024-02-07 20:33:27 -05:00
f18e18bc83 Merge pull request 'Build image with actions' (#3) from corysanin/artixlinux-docker:develop into master
All checks were successful
artixdocker/artixlinux-docker/pipeline/head This commit looks good
Docker Image CI / build (devel) (push) Successful in 2m12s
Docker Image CI / build (dinit) (push) Successful in 1m51s
Docker Image CI / build (openrc) (push) Successful in 1m46s
Docker Image CI / build (runit) (push) Successful in 1m40s
Docker Image CI / build (s6) (push) Successful in 1m52s
Reviewed-on: #3
2024-02-06 16:58:42 +01:00
072c6f86cb remove feature branch 2024-02-06 03:41:07 -05:00
d8fbaa9219 Build image with actions
Co-authored-by: Cory Sanin <corysanin@outlook.com>
Co-committed-by: Cory Sanin <corysanin@outlook.com>
2024-02-06 09:39:36 +01:00
74c6f1d96c update readme
All checks were successful
artixdocker/artixlinux-docker/pipeline/tag This commit looks good
artixdocker/artixlinux-docker/pipeline/head This commit looks good
2023-05-15 16:16:19 +02:00
7 changed files with 234 additions and 7 deletions

View File

@@ -0,0 +1,90 @@
name: Docker Image CI
on:
workflow_dispatch:
branches: [ master ]
push:
branches: [ master ]
pull_request:
branches: [ master ]
schedule:
- cron: '0 5 * * 3'
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 90
strategy:
fail-fast: true
matrix:
images:
[
base-devel,
base-openrc,
base-runit,
base-s6,
base-dinit,
base
]
env:
REGISTRY: gitea.artixlinux.org
DH_REGISTRY: docker.io
REPO_ORG: ${{ gitea.repository_owner }}
IMAGE_NAME: artixlinux
ABSOLUTE_IMAGE: ${{ env.REGISTRY }}/${{ env.REPO_ORG }}/${{ env.IMAGE_NAME }}
ABSOLUTE_DH_IMAGE: ${{ env.DH_REGISTRY }}/artixlinux/${{ env.IMAGE_NAME }}
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: https://github.com/actions/checkout@v4
- name: Set up docker
run: curl -fsSL https://get.docker.com | sh
# - name: Set up Docker Buildx
# id: buildx
# uses: docker/setup-buildx-action@v2
# with:
# install: true
- name: Define metadata variables
run: |
sed -i "s/ARG version=.*/ARG version=$(date +'%Y%m%d').0.${{ gitea.sha }}/" Dockerfile
sed -i "s/ARG githash=.*/ARG githash=${{ gitea.sha }}/" Dockerfile
sed -i "s/ARG created=.*/ARG created=$(date -u +'%Y-%m-%dT%H:%M:%S%:z')/" Dockerfile
cat Dockerfile
- name: Build Docker image
uses: https://github.com/docker/build-push-action@v5
with:
push: false
pull: true
no-cache: true
context: .
build-args: |
img=${{ matrix.images }}
tags: "${{ env.ABSOLUTE_IMAGE }}:${{ matrix.images }},${{ env.ABSOLUTE_DH_IMAGE }}:${{ matrix.images }},${{ env.ABSOLUTE_IMAGE }}:latest,${{ env.ABSOLUTE_DH_IMAGE }}:latest"
- name: Log in to the Container registry
uses: https://github.com/docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ gitea.actor }}
password: ${{ secrets.PAT }}
- name: Push to Gitea
if: github.ref == 'refs/heads/master' && ( gitea.event_name == 'push' || gitea.event_name == 'schedule' )
run: docker push "${{ env.ABSOLUTE_IMAGE }}:${{ matrix.images }}"
- name: Push latest tag
if: ( github.ref == 'refs/heads/master' && ( gitea.event_name == 'push' || gitea.event_name == 'schedule' ) ) && matrix.images == 'base'
run: docker push "${{ env.ABSOLUTE_IMAGE }}:latest"
- name: Log in to the Docker Hub
uses: https://github.com/docker/login-action@v2
with:
registry: ${{ env.DH_REGISTRY }}
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB }}
- name: Push to Docker Hub
if: github.ref == 'refs/heads/master' && ( gitea.event_name == 'push' || gitea.event_name == 'schedule' )
run: docker push "${{ env.ABSOLUTE_DH_IMAGE }}:${{ matrix.images }}"
- name: Push latest tag
if: ( github.ref == 'refs/heads/master' && ( gitea.event_name == 'push' || gitea.event_name == 'schedule' ) ) && matrix.images == 'base'
run: docker push "${{ env.ABSOLUTE_DH_IMAGE }}:latest"

View File

@@ -0,0 +1,25 @@
name: Docker Hub Description
on:
push:
branches: [ master ]
paths: [ dockerhub-readme.md ]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- name: Checkout repository
uses: https://github.com/actions/checkout@v4
- name: Push Docker Hub description
uses: https://github.com/christian-korneck/update-container-description-action@v1
env:
DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
DOCKER_PASS: ${{ secrets.DOCKERHUB }}
with:
destination_container_repo: artixlinux/artixlinux
provider: dockerhub
short_description: 'Artix Linux is a fork of Arch Linux that respects init freedom.'
readme_file: 'dockerhub-readme.md'

39
Dockerfile Normal file
View File

@@ -0,0 +1,39 @@
FROM artixlinux/artixlinux:latest AS build
WORKDIR /usr/artixlinux-docker
RUN pacman -Syu --noconfirm && \
pacman -Sy --noconfirm artools curl make fakechroot fakeroot
ARG img=base-devel
COPY . .
RUN make "dockerfile-${img}"
WORKDIR /usr/artixlinux-docker/output
COPY . .
RUN ROOTFS=${img}.tar.zst && \
sha256sum -c ${img}.tar.zst.SHA256 && \
mkdir /rootfs && \
tar -C /rootfs --extract --file "${ROOTFS}"
FROM scratch AS root
ARG img=base-devel
ARG version=VERSION
ARG githash=REVISION
ARG created=CREATED
LABEL org.opencontainers.image.title="Artix Linux ${img} Image"
LABEL org.opencontainers.image.description="Official containerd image of Artix Linux, a fork of Arch Linux that respects init freedom."
LABEL org.opencontainers.image.vendor="Artix Linux"
LABEL org.opencontainers.image.authors="Cory Sanin <corysanin@artixlinux.org>, artoo <artoo@artixlinux.org>, Chris Cromer <cromer@artixlinux.org>"
LABEL org.opencontainers.image.url="https://gitea.artixlinux.org/artixdocker"
LABEL org.opencontainers.image.documentation="https://wiki.artixlinux.org/"
LABEL org.opencontainers.image.source="https://gitea.artixlinux.org/artixdocker/artixlinux-docker"
LABEL org.opencontainers.image.licenses="GPL-3.0-or-later"
LABEL org.opencontainers.image.version="${version}"
LABEL org.opencontainers.image.revision="${githash}"
LABEL org.opencontainers.image.created="${created}"
COPY --from=build /rootfs/ /
RUN ldconfig && \
sed -i "/BUILD_ID/a VERSION_ID=${version}" /etc/os-release
ENV LANG=C.UTF-8
CMD ["/usr/bin/bash"]

2
Jenkinsfile vendored
View File

@@ -1,3 +1,3 @@
@Library('docker-ci@devel') import org.artixlinux.DockerImage
@Library('docker-ci') import org.artixlinux.DockerImage
ImagePipeline(new DockerImage(this))

View File

@@ -9,7 +9,7 @@ define rootfs
find /usr/share/libalpm/hooks -exec ln -sf /dev/null $(BUILDDIR)/alpm-hooks{} \;
mkdir -vp $(BUILDDIR)/var/lib/pacman/ $(OUTPUTDIR)
install -Dm644 /usr/share/artools/pacman-default.conf $(BUILDDIR)/etc/pacman.conf
install -Dm644 /usr/share/artools/pacman.conf.d/galaxy-x86_64.conf $(BUILDDIR)/etc/pacman.conf
cat pacman-conf.d-noextract.conf >> $(BUILDDIR)/etc/pacman.conf
fakechroot fakeroot pacman -Sy -r $(BUILDDIR) \
@@ -25,10 +25,12 @@ define rootfs
fakechroot fakeroot chroot $(BUILDDIR) sh -c 'pacman-key --init && pacman-key --populate && rm -rf etc/pacman.d/gnupg/{openpgp-revocs.d/,private-keys-v1.d/,pubring.gpg~,gnupg.S.}*'
fakechroot fakeroot chroot $(BUILDDIR) /usr/bin/esysusers --root "/"
ln -fs /usr/lib/os-release $(BUILDDIR)/etc/os-release
# add system users
fakechroot fakeroot chroot $(BUILDDIR) /usr/bin/sysusers --root "/"
#fakechroot fakeroot chroot $(BUILDDIR) /usr/bin/sysusers --root "/"
# remove passwordless login for root (see CVE-2019-5021 for reference)
sed -i -e 's/^root::/root:!:/' "$(BUILDDIR)/etc/shadow"
@@ -53,6 +55,9 @@ endef
clean:
rm -rf $(BUILDDIR) $(OUTPUTDIR)
$(OUTPUTDIR)/base.tar.zst:
$(call rootfs,base,base)
$(OUTPUTDIR)/base-openrc.tar.zst:
$(call rootfs,base-openrc,base,elogind-openrc)
@@ -65,6 +70,9 @@ $(OUTPUTDIR)/base-s6.tar.zst:
$(OUTPUTDIR)/base-dinit.tar.zst:
$(call rootfs,base-dinit,base,elogind-dinit)
$(OUTPUTDIR)/Dockerfile.base: $(OUTPUTDIR)/base.tar.zst
$(call dockerfile,base)
$(OUTPUTDIR)/Dockerfile.base-openrc: $(OUTPUTDIR)/base-openrc.tar.zst
$(call dockerfile,base-openrc)
@@ -95,6 +103,9 @@ dockerfile-base-s6: $(OUTPUTDIR)/Dockerfile.base-s6
.PHONY: docker-file-base-dinit
dockerfile-base-dinit: $(OUTPUTDIR)/Dockerfile.base-dinit
.PHONY: docker-file-base
dockerfile-base: $(OUTPUTDIR)/Dockerfile.base
.PHONY: docker-file-base-devel
dockerfile-base-devel: $(OUTPUTDIR)/Dockerfile.base-devel
@@ -114,6 +125,10 @@ image-base-s6: $(OUTPUTDIR)/Dockerfile.base-s6
image-base-dinit: $(OUTPUTDIR)/Dockerfile.base-dinit
${DOCKER} build -f $(OUTPUTDIR)/Dockerfile.base-dinit -t $(REGISTRY)/$(OWNER)/artixlinux:base-dinit $(OUTPUTDIR)
.PHONY: docker-image-base
image-base: $(OUTPUTDIR)/Dockerfile.base
${DOCKER} build -f $(OUTPUTDIR)/Dockerfile.base -t $(REGISTRY)/$(OWNER)/artixlinux:base $(OUTPUTDIR)
.PHONY: docker-image-base-devel
image-base-devel: $(OUTPUTDIR)/Dockerfile.base-devel
${DOCKER} build -f $(OUTPUTDIR)/Dockerfile.base-devel -t $(REGISTRY)/$(OWNER)/artixlinux:base-devel $(OUTPUTDIR)

View File

@@ -6,16 +6,35 @@ This repository contains all scripts and files needed to create a Docker images
Install the following Artix Linux packages:
* make
* artools
* fakechroot
* docker
* fakeroot
* artools
## Usage
Run `make docker-image` to build the base image.
Run `make image-base-devel` to build the base devel image.
Run `make docker-image-openrc` to build the openrc image.
Run `make image-base-openrc` to build the openrc base image.
Run `make docker-image-runit` to build the runit image.
Run `make image-base-runit` to build the runit base image.
Run `make image-base-s6` to build the s6 base image.
Run `make image-base-dinit` to build the dinit base image.
Alternatively:
Run `make dockerfile-base-devel` to build the base devel dockerfile.
Run `make dockerfile-base-openrc` to build the openrc base dockerfile.
Run `make dockerfile-base-runit` to build the runit base dockerfile.
Run `make dockerfile-base-s6` to build the s6 base dockerfile.
Run `make dockerfile-base-dinit` to build the dinit base dockerfile.
## Purpose

39
dockerhub-readme.md Normal file
View File

@@ -0,0 +1,39 @@
# Quick reference
* **Maintained by**:
[Cory Sanin](https://artixlinux.org/kotnr.php#Cory%20Sanin), [artoo](https://artixlinux.org/kotor.php#Marcus%20von%20Ditfurth), [Chris Cromer](https://artixlinux.org/kotor.php#Chris%20Cromer)
* **Where to get help**:
[Artix Wiki](https://wiki.artixlinux.org/), [Artix Linux Forum](https://forum.artixlinux.org/)
# Supported tags
* latest, base
* base-devel
* base-dinit
* base-openrc
* base-runit
* base-s6
## Dockerfile repo
[artixlinux-docker](https://gitea.artixlinux.org/artixdocker/artixlinux-docker)
# Purpose
* Provide Artix Linux in a Docker Image
* Provide the most simple but complete image to base every other upon
* `pacman` needs to work out of the box
* All installed packages have to be kept unmodified
# How to run
```
docker pull artixlinux/artixlinux:base
docker run -it --rm artixlinux/artixlinux:base /bin/bash
```
Note that `--rm` removes the container on exit.