Compare commits
36 Commits
Author | SHA1 | Date | |
---|---|---|---|
30419ebfc3 | |||
584e8c97a5 | |||
3d38d7a5ff | |||
e52089322f | |||
1161612ef2 | |||
33790a3be4 | |||
9d50738195 | |||
6d1e164bb3 | |||
68ac3ba380 | |||
a8f514fed8 | |||
b6d194191d | |||
85d8cf5359 | |||
1a80496abd | |||
ea4edd505b | |||
fdc5dd6f1c | |||
fcd83eb9c5 | |||
b92babe0e9 | |||
6f62b808d7 | |||
01c9a0fbc4 | |||
866b668074 | |||
be7d4b9716 | |||
75e7bade0c | |||
1cf40505fd | |||
2a068ab9de | |||
4dfede6778 | |||
4bc7b193c4 | |||
f896b8b6d4 | |||
1614c3bcee | |||
d17acf67e9 | |||
84d5bd2f1b | |||
a19c42eeb9 | |||
68d8fcd537 | |||
dbeddd89be | |||
2d15e3f2dc | |||
5a8e8dfa5d | |||
38d765ec1b |
99
.drone.yml
99
.drone.yml
@ -1,43 +1,70 @@
|
|||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: dockerhub-build-trigger
|
|
||||||
|
|
||||||
platform:
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
exclude:
|
|
||||||
event: pull_request
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: call webhook
|
|
||||||
pull: always
|
|
||||||
image: curlimages/curl:latest
|
|
||||||
environment:
|
|
||||||
ENDPOINT:
|
|
||||||
from_secret: dockerhub_endpoint
|
|
||||||
commands:
|
|
||||||
- curl -s -X POST $ENDPOINT
|
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: docker
|
type: docker
|
||||||
name: kaniko-build
|
name: testing
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
os: linux
|
os: linux
|
||||||
arch: amd64
|
arch: amd64
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- dockerhub-build-trigger
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build
|
- name: hadolint
|
||||||
pull: always
|
pull: always
|
||||||
image: ghcr.io/finitum/drone-kaniko:0.8.1
|
image: docker.io/hadolint/hadolint:v2.12.0-alpine
|
||||||
|
commands:
|
||||||
|
- hadolint --version
|
||||||
|
- hadolint Dockerfile
|
||||||
|
when:
|
||||||
|
ref:
|
||||||
|
- refs/heads/master
|
||||||
|
- "refs/heads/feature-**"
|
||||||
|
- "refs/pull/**"
|
||||||
|
- "refs/tags/**"
|
||||||
|
event:
|
||||||
|
exclude: [cron]
|
||||||
|
|
||||||
|
- name: kaniko-build
|
||||||
|
pull: always
|
||||||
|
image: docker.io/immawanderer/drone-kaniko:linux-amd64
|
||||||
settings:
|
settings:
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
context: .
|
context: .
|
||||||
|
args:
|
||||||
|
- BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
|
||||||
|
- VCS_REF=${DRONE_COMMIT_SHA:0:7}
|
||||||
|
when:
|
||||||
|
ref:
|
||||||
|
- "refs/heads/feature-**"
|
||||||
|
- "refs/pull/**"
|
||||||
|
- "refs/tags/**"
|
||||||
|
event:
|
||||||
|
exclude: [cron]
|
||||||
|
|
||||||
|
- name: kaniko-publish
|
||||||
|
pull: always
|
||||||
|
image: docker.io/immawanderer/drone-kaniko:linux-amd64
|
||||||
|
settings:
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
context: .
|
||||||
|
args:
|
||||||
|
- BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
|
||||||
|
- VCS_REF=${DRONE_COMMIT_SHA:0:7}
|
||||||
|
tags:
|
||||||
|
- latest
|
||||||
|
- linux-amd64
|
||||||
|
- ${DRONE_COMMIT_SHA:0:8}
|
||||||
|
repo: immawanderer/archlinux
|
||||||
|
username:
|
||||||
|
from_secret: docker_username
|
||||||
|
password:
|
||||||
|
from_secret: docker_password
|
||||||
|
when:
|
||||||
|
ref:
|
||||||
|
- refs/heads/master
|
||||||
|
event:
|
||||||
|
exclude: [pull_request, tag]
|
||||||
|
trigger:
|
||||||
|
event: [push, pull_request, cron, tag]
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
@ -62,12 +89,12 @@ trigger:
|
|||||||
- cron
|
- cron
|
||||||
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- kaniko-build
|
- testing
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: discord
|
- name: discord
|
||||||
pull: if-not-exists
|
pull: if-not-exists
|
||||||
image: appleboy/drone-discord:latest
|
image: docker.io/appleboy/drone-discord:latest
|
||||||
settings:
|
settings:
|
||||||
message: "{{#success build.status}} ✅ [Build #{{build.number}}]({{build.link}}) of `{{repo.name}}` succeeded.\nevent: **`{{build.event}}`**\ncommit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}`\n```{{commit.message}}``` {{else}} ❌ [Build #{{build.number}}]({{build.link}}) of `{{repo.name}}` failed.\nevent: **`${DRONE_BUILD_EVENT}`**\ncommit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}`\n```{{commit.message}}``` {{/success}}\n"
|
message: "{{#success build.status}} ✅ [Build #{{build.number}}]({{build.link}}) of `{{repo.name}}` succeeded.\nevent: **`{{build.event}}`**\ncommit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}`\n```{{commit.message}}``` {{else}} ❌ [Build #{{build.number}}]({{build.link}}) of `{{repo.name}}` failed.\nevent: **`${DRONE_BUILD_EVENT}`**\ncommit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}`\n```{{commit.message}}``` {{/success}}\n"
|
||||||
webhook_id:
|
webhook_id:
|
||||||
@ -92,21 +119,27 @@ trigger:
|
|||||||
event:
|
event:
|
||||||
- cron
|
- cron
|
||||||
cron:
|
cron:
|
||||||
- hourly-build
|
- nightly-build
|
||||||
status:
|
status:
|
||||||
- success
|
- success
|
||||||
- failure
|
- failure
|
||||||
|
|
||||||
depends_on:
|
depends_on:
|
||||||
- kaniko-build
|
- testing
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: discord
|
- name: discord
|
||||||
pull: always
|
pull: always
|
||||||
image: appleboy/drone-discord:latest
|
image: docker.io/appleboy/drone-discord:latest
|
||||||
settings:
|
settings:
|
||||||
message: "{{#success build.status}} ✅ [Hourly build #{{build.number}}]({{build.link}}) of `{{repo.name}}` succeeded.\nevent: **`{{build.event}}`**\ncommit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}`\n {{else}} ❌ [Hourly build #{{build.number}}]({{build.link}}) of `{{repo.name}}` failed.\nevent: **`${DRONE_BUILD_EVENT}`**\ncommit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}`\n {{/success}}\n"
|
message: "{{#success build.status}} ✅ [Scheduled build #{{build.number}}]({{build.link}}) of `{{repo.name}}` succeeded.\nevent: **`{{build.event}}`**\ncommit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}`\n {{else}} ❌ [Scheduled build #{{build.number}}]({{build.link}}) of `{{repo.name}}` failed.\nevent: **`${DRONE_BUILD_EVENT}`**\ncommit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}`\n {{/success}}\n"
|
||||||
webhook_id:
|
webhook_id:
|
||||||
from_secret: discord_webhook_hourly_id
|
from_secret: discord_webhook_hourly_id
|
||||||
webhook_token:
|
webhook_token:
|
||||||
from_secret: discord_webhook_hourly_token
|
from_secret: discord_webhook_hourly_token
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: signature
|
||||||
|
hmac: bc36fd53d1d57053f660e05df07722e8cb2e82edc732ec8898d7308ad891b905
|
||||||
|
|
||||||
|
...
|
||||||
|
2
.hadolint.yaml
Normal file
2
.hadolint.yaml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
ignored:
|
43
Dockerfile
43
Dockerfile
@ -1,24 +1,35 @@
|
|||||||
FROM archlinux:latest
|
# syntax=docker/dockerfile:1.3
|
||||||
|
# refs:
|
||||||
|
# https://docs.docker.com/develop/develop-images/build_enhancements/#overriding-default-frontends
|
||||||
|
# https://pythonspeed.com/articles/docker-buildkit/
|
||||||
|
|
||||||
|
FROM docker.io/library/archlinux:base-devel
|
||||||
|
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
ARG VCS_REF
|
ARG VCS_REF
|
||||||
|
|
||||||
LABEL description="Hourly updated archlinux base image"
|
# as per https://github.com/opencontainers/image-spec/blob/main/annotations.md,
|
||||||
|
# keep Label Schema labels for backward compatibility.
|
||||||
LABEL org.label-schema.build-date=$BUILD_DATE \
|
LABEL description="hourly updated archlinux base(-devel) image" \
|
||||||
|
org.label-schema.build-date=$BUILD_DATE \
|
||||||
org.label-schema.vcs-url="https://git.dotya.ml/wanderer/docker-archlinux.git" \
|
org.label-schema.vcs-url="https://git.dotya.ml/wanderer/docker-archlinux.git" \
|
||||||
org.label-schema.vcs-ref=$VCS_REF \
|
org.label-schema.vcs-ref=$VCS_REF \
|
||||||
org.label-schema.license=GPL-3.0
|
org.label-schema.license=GPL-3.0 \
|
||||||
|
org.opencontainers.image.title="docker-archlinux" \
|
||||||
|
org.opencontainers.image.description="hourly updated archlinux base(-devel) image" \
|
||||||
|
org.opencontainers.image.created=$BUILD_DATE \
|
||||||
|
org.opencontainers.image.authors=wanderer \
|
||||||
|
org.opencontainers.image.url="https://git.dotya.ml/wanderer/docker-archlinux.git" \
|
||||||
|
org.opencontainers.image.source="https://git.dotya.ml/wanderer/docker-archlinux.git" \
|
||||||
|
org.opencontainers.image.revision=$VCS_REF \
|
||||||
|
org.opencontainers.image.licenses=GPL-3.0
|
||||||
|
|
||||||
# WORKAROUND for glibc 2.33 and old Docker
|
# if you need the WORKAROUND for glibc 2.33 and old Docker
|
||||||
# See https://github.com/actions/virtual-environments/issues/2658
|
# have a look at https://git.dotya.ml/wanderer/docker-archlinux/commit/bd4c5abe4dca475965548cb8332ef9b9d2a4953c
|
||||||
# Thanks to https://github.com/lxqt/lxqt-panel/pull/1562
|
|
||||||
ENV patched_glibc glibc-linux4-2.33-4-x86_64.pkg.tar.zst
|
|
||||||
RUN curl -LO "https://repo.archlinuxcn.org/x86_64/$patched_glibc" && \
|
|
||||||
bsdtar -C / -xvf "$patched_glibc"
|
|
||||||
RUN pacman --version
|
|
||||||
|
|
||||||
RUN pacman -Syu --ignore glibc --noconfirm --needed
|
RUN pacman --version && \
|
||||||
RUN pacman --noconfirm -Rn $(pacman -Qdtq) || true
|
\
|
||||||
RUN pacman -Scc && rm -rfv /var/cache/pacman/* /var/lib/pacman/sync/* \
|
\
|
||||||
rm -rv /tmp/* || true
|
pacman -Syu --noconfirm --needed && \
|
||||||
|
pacman --noconfirm -Rn "$(pacman -Qdtq)" || true && \
|
||||||
|
pacman -Scc && rm -rf /var/cache/pacman/* /var/lib/pacman/sync/*
|
||||||
|
2
LICENSE
2
LICENSE
@ -2,7 +2,7 @@ GNU GENERAL PUBLIC LICENSE
|
|||||||
|
|
||||||
Version 3, 29 June 2007
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
Copyright © 2020-2021 Adam Mirre <a_mirre@utb.cz>
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies of this license
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||||
document, but changing it is not allowed.
|
document, but changing it is not allowed.
|
||||||
|
34
Makefile
Normal file
34
Makefile
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
dcmd = docker
|
||||||
|
dfile = Dockerfile
|
||||||
|
dtag = immawanderer/archlinux:testbuild
|
||||||
|
dargs = build -t $(dtag) --no-cache --pull - < $(dfile)
|
||||||
|
cleanargs = image rm -f $(dtag)
|
||||||
|
pruneargs = system prune -af
|
||||||
|
dargskaniko = run --rm -it -w=$(kanikowdir) -v $$PWD:$(kanikowdir):z
|
||||||
|
kanikoexecutorimg = gcr.io/kaniko-project/executor:v1.8.1-debug
|
||||||
|
kanikowdir = /src
|
||||||
|
kanikocontext = .
|
||||||
|
kanikoargs = -f=$(dfile) -c=$(kanikocontext) --use-new-run --snapshotMode=redo --build-arg BUILD_DATE=$(build_date) --build-arg VCS_REF=$(vcs_ref) --no-push
|
||||||
|
vcs_ref = $$(git rev-parse --short HEAD)
|
||||||
|
build_date= $$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
hadolintimg = docker.io/hadolint/hadolint
|
||||||
|
hadolinttag = v2.12.0-alpine
|
||||||
|
hadolintargs = run --rm -i -v $$PWD:/src:z --workdir=/src
|
||||||
|
.PHONY: hadolint build kaniko clean test prune
|
||||||
|
|
||||||
|
hadolint:
|
||||||
|
$(dcmd) $(hadolintargs) $(hadolintimg):$(hadolinttag) < $(dfile)
|
||||||
|
|
||||||
|
kaniko:
|
||||||
|
$(dcmd) $(dargskaniko) $(kanikoexecutorimg) $(kanikoargs)
|
||||||
|
|
||||||
|
build:
|
||||||
|
$(dcmd) $(dargs)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(dcmd) $(cleanargs)
|
||||||
|
|
||||||
|
test: hadolint build kaniko
|
||||||
|
|
||||||
|
prune:
|
||||||
|
$(dcmd) $(pruneargs)
|
15
README.md
15
README.md
@ -1,13 +1,14 @@
|
|||||||
# docker-archlinux
|
# docker-archlinux
|
||||||
|
|
||||||
[![Build Status](https://drone.dotya.ml/api/badges/wanderer/docker-archlinux-hugo/status.svg)](https://drone.dotya.ml/wanderer/docker-archlinux-hugo)
|
[![Build Status](https://drone.dotya.ml/api/badges/wanderer/docker-archlinux/status.svg)](https://drone.dotya.ml/wanderer/docker-archlinux)
|
||||||
[![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/immawanderer/archlinux)](https://hub.docker.com/r/immawanderer/archlinux/builds)
|
[![Docker Image Version (latest by date)](https://img.shields.io/docker/v/immawanderer/archlinux)](https://hub.docker.com/r/immawanderer/archlinux/tags/?page=1&ordering=last_updated)
|
||||||
[![](https://images.microbadger.com/badges/version/immawanderer/archlinux.svg)](https://microbadger.com/images/immawanderer/archlinux)
|
[![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/immawanderer/archlinux/linux-amd64)](https://hub.docker.com/r/immawanderer/archlinux/tags/?page=1&ordering=last_updated&name=linux-amd64)
|
||||||
[![](https://images.microbadger.com/badges/commit/immawanderer/archlinux.svg)](https://microbadger.com/images/immawanderer/archlinux)
|
[![Docker Image Size (tag)](https://img.shields.io/docker/image-size/immawanderer/archlinux/linux-amd64)](https://hub.docker.com/r/immawanderer/archlinux/tags/?page=1&ordering=last_updated&name=linux-amd64)
|
||||||
|
[![Docker pulls](https://img.shields.io/docker/pulls/immawanderer/archlinux)](https://hub.docker.com/r/immawanderer/archlinux/)
|
||||||
|
|
||||||
This repository provides the Dockerfile to create an updated Arch Linux base image.
|
This repository provides a Dockerfile to create an *updated* Arch Linux base(-devel) image.
|
||||||
|
|
||||||
The image is rebuilt approximately every hour to ensure it always has the latest packages.
|
The image is rebuilt nightly to ensure it always has the latest packages.
|
||||||
|
|
||||||
push mirror lives in [this GitHub repo](https://github.com/wULLSnpAXbWZGYDYyhWTKKspEQoaYxXyhoisqHf/docker-archlinux)
|
push mirror lives in [this GitHub repo](https://github.com/wULLSnpAXbWZGYDYyhWTKKspEQoaYxXyhoisqHf/docker-archlinux)
|
||||||
development happens on [this Gitea instance](https://git.dotya.ml/wanderer/docker-archlinux)
|
development happens on [this Gitea instance](https://git.dotya.ml/wanderer/docker-archlinux)
|
||||||
@ -21,7 +22,7 @@ That's just it. This makes it possible to just grab the image and install whatev
|
|||||||
* Arch Linux image with freshly updated package base to build upon
|
* Arch Linux image with freshly updated package base to build upon
|
||||||
|
|
||||||
## Running the image
|
## Running the image
|
||||||
* edit the `yourlocalpath` and `containerpath` variabled or remove them entirely (along with `-v`) if you have *nothing to mount*
|
* edit the `yourlocalpath` and `containerpath` variables or remove them entirely (along with `-v`) if you have *nothing to mount*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -it -v yourlocalpath:containerpath immawanderer/archlinux:latest
|
docker run -it -v yourlocalpath:containerpath immawanderer/archlinux:latest
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
# $IMAGE_NAME var is injected into the build so the tag is correct.
|
# $IMAGE_NAME var is injected into the build so the tag is correct.
|
||||||
|
|
||||||
|
export DOCKER_BUILDKIT=1
|
||||||
echo "Build hook running"
|
echo "Build hook running"
|
||||||
docker build --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
docker build --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
Loading…
Reference in New Issue
Block a user