Compare commits

...

44 Commits

Author SHA1 Message Date
Nadezhda Fedorova
f7e8ff3059 add skip branch c10 for ansible image 2024-09-03 15:05:37 +03:00
085e251c81 update tags.toml for cert-manager and flannel 2024-08-21 14:12:11 +03:00
Nadezhda Fedorova
704f9912e1 add ansible image 2024-08-21 12:57:54 +03:00
Nadezhda Fedorova
30c0e3df57 fix test for loki 2024-08-14 16:23:50 +03:00
Nadezhda Fedorova
430219d6d0 add temporary patchig sourceslist for p11 while it's not published 2024-08-14 12:27:01 +03:00
Nadezhda Fedorova
abddecf404 fix entrypoint in test by podman after usrmerge 2024-08-07 17:10:32 +03:00
Nadezhda Fedorova
78259d754d fix openjdk template 2024-08-07 16:30:44 +03:00
Nadezhda Fedorova
cdb4d9d2f8 add new exclusion for images 2024-08-07 15:59:23 +03:00
Nadezhda Fedorova
8da835e2b6 fix tests 2024-08-07 12:44:30 +03:00
Nadezhda Fedorova
3f4409b2c4 fix entrypoint in test by podman after usrmerge 2024-08-07 11:46:59 +03:00
Nadezhda Fedorova
4a434a443b fix testing in single_wf 2024-08-06 18:52:06 +03:00
Nadezhda Fedorova
79f5a1def4 fix build template for distroless-base image 2024-08-06 18:14:07 +03:00
Nadezhda Fedorova
9145f4635d add workflow for single image building 2024-08-06 17:28:09 +03:00
Nadezhda Fedorova
2314b3aba8 add openjdk 2024-08-06 13:01:40 +03:00
Nadezhda Fedorova
63fc9e2440 add images postgresql rabbitmq 2024-08-06 13:01:40 +03:00
Nadezhda Fedorova
8e68d73e10 add tests to new images in org/alt 2024-08-06 13:01:40 +03:00
eb04d81fa7 docs: update README.md 2024-06-10 16:46:34 +03:00
Nadezhda Fedorova
4b4609ea9b add workflow for p11 2024-06-10 13:05:48 +03:00
Nadezhda Fedorova
733f065152 fix grafana template 2024-06-10 13:05:26 +03:00
Nadezhda Fedorova
0e8a71d1cf add branch p11 2024-06-10 12:45:32 +03:00
Nadezhda Fedorova
359481a018 add images grafana loki golang php 2024-06-07 17:27:23 +03:00
Nadezhda Fedorova
8466221285 add images prometheus, python2 2024-06-04 18:47:09 +03:00
ab4b19f839 feat: add new cert-manager images
- cert-manager-startupapicheck
- cert-manager-acmesolver
2024-05-29 16:16:57 +03:00
3f432b2a9a feat: upadate cert-manager images 2024-05-29 16:16:36 +03:00
Nadezhda Fedorova
f8496320dd delete arches ppc64le arm from building script 2024-05-08 18:20:50 +03:00
fl0pp5
8cdee0b278 feat: Add trivy 2024-05-08 17:08:59 +03:00
Nadezhda Fedorova
8cc6581c18 fix systemd's label 2024-05-08 09:27:55 +03:00
4bef9210e6 docs: fix distroless-builder description 2024-05-03 13:05:11 +03:00
6944bb7158 feat: add labels to the k8s/kube-* images 2024-05-02 12:01:46 +03:00
e60d4a6450 refactor: make help message more readable 2024-05-01 18:50:33 +03:00
d31ae53893 fix: correct help message for -i/--images option 2024-05-01 18:49:45 +03:00
d3a5f23958 feat: add zot Dockerfile.template and test 2024-04-26 16:29:36 +03:00
f55f03f91d refactor: fix typo in install_pakage 2024-04-26 12:34:41 +03:00
Nadezhda Fedorova
fa20517058 add repo to /etc/host for building c10f2 2024-04-25 11:15:52 +03:00
Nadezhda Fedorova
ad9a468aa6 update tags for k8s 2024-04-23 17:43:14 +03:00
Nadezhda Fedorova
86fba1814f fix getting number of tech.issue for notifications to static number 1 (filter on tag doesn't work) 2024-04-23 13:35:41 +03:00
Nadezhda Fedorova
28b280556b delete from workflow building images on c10f1/2 for arches arm, ppc 2024-04-23 13:09:37 +03:00
Nadezhda Fedorova
deee1706de add workflow for building all images on branches p10, c10f1/2 2024-04-22 17:24:17 +03:00
Nadezhda Fedorova
a59901c4bf add branches c10f1,c10f2 to list of options 2024-04-22 17:17:14 +03:00
Nadezhda Fedorova
5d6c3dcf3f update tags for k8s 2024-04-19 18:13:06 +03:00
Nadezhda Fedorova
1aa473607c add labels to dockerfiles 2024-04-19 15:51:44 +03:00
Nadezhda Fedorova
fcffc17ea0 add workflow for building all images on sisyphus 2024-04-19 15:12:54 +03:00
Nadezhda Fedorova
81f61b4857 change default registry to gitea 2024-04-18 13:18:44 +03:00
Nadezhda Fedorova
48de446739 add tests for images alt, k8s 2024-04-18 13:17:59 +03:00
108 changed files with 1291 additions and 143 deletions

70
.gitea/workflows/testscript Executable file
View File

@ -0,0 +1,70 @@
#!/bin/bash
#$1 - ${{ needs.build-process.outputs.branch }}
#$2 - ${{ needs.build-process.outputs.org }}
#$3 - ${{ needs.build-process.outputs.url }}
#$4 - ${{ needs.build-process.outputs.repo }}
#$5 - ${{ gitea.workspace }}
errors=''
haserr=false
for IM in $(ls $5/org/$2/ | xargs)
do
echo "image=$IM"
if test -f $5/org/$2/$IM/test
then
test=$(cat $5/org/$2/$IM/test)
else test=''
fi
echo "test script=$test"
imgpath="$2/$IM:$1"
if [[ $2 == 'k8s' ]]
then imgpath="$2-$1/$IM:latest"
fi
entrypoint='/usr/bin/sh'
if [[ $1 == 'p10' ]]
then entrypoint='/bin/sh'
fi
command="echo empty_command"
if [[ $test != '' ]]; then
command="podman run --rm --entrypoint=\"$entrypoint\" $3/$imgpath -c \"$test\""
else
if [[ $IM == 'distroless-true' ]]; then
command="podman run --rm $3/$imgpath \"true\""
fi
if [[ $IM == 'distroless-gotop' ]]; then
command="podman run --rm $3/$imgpath \"--version\""
fi
if [[ $IM == 'flannel-cni-plugin' ]]; then
command="podman run --rm $3/$imgpath \"/flannel\""
fi
if [[ $IM == 'pause' ]]; then
command="podman run --rm $3/$imgpath \"/pause\" \"-v\""
fi
fi
echo $command
eval $command 2>$IM.log || haserr=true
echo "podman rmi --all"
podman rmi --all
if [ "$haserr" = true ]
then
if [[ $(cat $IM.log) != '' ]]
then errors="TEST ERROR OF IMAGE $IM: $(cat $IM.log); $errors"
else errors="TEST ERROR OF IMAGE $IM: test returned empty error, but exit status was nozero; $errors"
fi
fi
haserr=false
done
echo "$errors"
if [[ $errors != '' ]]
then haserr=true
fi
echo "ERR=$haserr" > haserr.log
echo $errors > errors.log

View File

@ -0,0 +1,133 @@
name: Full building alt images
on:
push:
tags:
- '*10*_*'
jobs:
build-process:
runs-on: alt-p10
outputs:
branch: ${{ env.BRANCH }}
org: ${{ env.ORG }}
url: ${{ env.URL }}
repo: ${{ env.REPO }}
buildres: ${{ steps.build-script.outcome }}
steps:
- name: Check workspace
run: |
repourl=$(echo $GU | cut -d '/' -f 3)
echo "URL=$repourl" >> ${GITHUB_ENV}
echo $repourl
reponame=$(echo $GR | cut -d '/' -f 1)
echo "REPO=$reponame" >> ${GITHUB_ENV}
echo $reponame
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- name: Set repo for c10f2 (Temporary)
if: ${{ contains(github.ref_name, 'c10f2') }}
run: |
echo "event tag=${{ github.ref_name }}"
echo "10.4.0.3 update.altsp.su" >> /etc/hosts
echo "cat /etc/hosts"
cat /etc/hosts
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
- name: Check out current repo
uses: actions/checkout@v4
- name: Parse target branch and tag from events context, save to env
env:
EV: ${{ toJson(gitea.event) }}
run: |
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1 >> ${GITHUB_ENV}
org=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 2)
echo "ORG=$org" >> ${GITHUB_ENV}
echo "ORG=$org"
- name: Login podman gitea
run: |
echo "podman login ${{ env.URL }}"
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
env:
P_USER: ${{ secrets.PODMAN_USER }}
P_PASS: ${{ secrets.PODMAN_PASS }}
- name: Run building script
id: build-script
run: |
build_args="-b $BR -o $ORG --skip-images alt/distroless-devel"
if [[ $ORG == 'k8s' ]]; then build_args="$build_args --tags tags.toml --overwrite-organization $ORG-$BR --skip-images k8s/kube-apiserver k8s/kube-controller-manager k8s/kube-proxy k8s/kube-scheduler"; fi
echo "build.py $build_args"
${{ gitea.workspace }}/build.py $build_args
env:
ORG: ${{ env.ORG }}
BR: ${{ env.BRANCH }}
continue-on-error: true
- name: Send notification if build crashed
if: ${{ steps.build-script.outcome != 'success' }}
run: |
issueid=1
body="Building images finish with some errors."
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
- name: Delete event tag
run: |
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
echo "tag $tagname is deleted"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
EV: ${{ toJson(gitea.event) }}
test-process:
needs: build-process
if: ${{ needs.build-process.outputs.buildres == 'success' }}
runs-on: alt-p10
steps:
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
- name: Check out current repo
uses: https://gitea.com/actions/checkout@v4
- name: Test
id: test-script
continue-on-error: true
run: |
$WS/.gitea/workflows/testscript $BR $ORG $URL $REPO $WS
cat haserr.log >> ${GITHUB_ENV}
echo "test process finished"
env:
BR: ${{ needs.build-process.outputs.branch }}
ORG: ${{ needs.build-process.outputs.org }}
URL: ${{ needs.build-process.outputs.url }}
REPO: ${{ needs.build-process.outputs.repo }}
WS: ${{ gitea.workspace }}
- name: Send notification if test crashed
if: ${{ env.ERR == 'true' || steps.test-script.outcome == 'failure' }}
run: |
issueid=1
errors=$(cat errors.log)
body="Testing images finish with some errors. $errors"
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ gitea.server_url }}
REPO: ${{ needs.build-process.outputs.repo }}

View File

@ -0,0 +1,133 @@
name: Full building alt images
on:
push:
tags:
- 'p11_*'
jobs:
build-process:
runs-on: alt-sisyphus
outputs:
branch: ${{ env.BRANCH }}
org: ${{ env.ORG }}
url: ${{ env.URL }}
repo: ${{ env.REPO }}
buildres: ${{ steps.build-script.outcome }}
steps:
- name: Check workspace
run: |
repourl=$(echo $GU | cut -d '/' -f 3)
echo "URL=$repourl" >> ${GITHUB_ENV}
echo $repourl
reponame=$(echo $GR | cut -d '/' -f 1)
echo "REPO=$reponame" >> ${GITHUB_ENV}
echo $reponame
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- name: Set repo for p11 (Temporary)
if: ${{ contains(github.ref_name, 'p11') }}
run: |
echo "event tag=${{ github.ref_name }}"
echo "10.4.0.3 update.altsp.su" >> /etc/hosts
echo "cat /etc/hosts"
cat /etc/hosts
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
- name: Check out current repo
uses: actions/checkout@v4
- name: Parse target branch and tag from events context, save to env
env:
EV: ${{ toJson(gitea.event) }}
run: |
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1 >> ${GITHUB_ENV}
org=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 2)
echo "ORG=$org" >> ${GITHUB_ENV}
echo "ORG=$org"
- name: Login podman gitea
run: |
echo "podman login ${{ env.URL }}"
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
env:
P_USER: ${{ secrets.PODMAN_USER }}
P_PASS: ${{ secrets.PODMAN_PASS }}
- name: Run building script
id: build-script
run: |
build_args="-b $BR -o $ORG --skip-images alt/distroless-devel"
if [[ $ORG == 'k8s' ]]; then build_args="$build_args --tags tags.toml --overwrite-organization $ORG-$BR --skip-images k8s/kube-apiserver k8s/kube-controller-manager k8s/kube-proxy k8s/kube-scheduler"; fi
echo "build.py $build_args"
${{ gitea.workspace }}/build.py $build_args
env:
ORG: ${{ env.ORG }}
BR: ${{ env.BRANCH }}
continue-on-error: true
- name: Send notification if build crashed
if: ${{ steps.build-script.outcome != 'success' }}
run: |
issueid=1
body="Building images finish with some errors."
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
- name: Delete event tag
run: |
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
echo "tag $tagname is deleted"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
EV: ${{ toJson(gitea.event) }}
test-process:
needs: build-process
if: ${{ needs.build-process.outputs.buildres == 'success' }}
runs-on: alt-sisyphus
steps:
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
- name: Check out current repo
uses: https://gitea.com/actions/checkout@v4
- name: Test
id: test-script
continue-on-error: true
run: |
$WS/.gitea/workflows/testscript $BR $ORG $URL $REPO $WS
cat haserr.log >> ${GITHUB_ENV}
echo "test process finished"
env:
BR: ${{ needs.build-process.outputs.branch }}
ORG: ${{ needs.build-process.outputs.org }}
URL: ${{ needs.build-process.outputs.url }}
REPO: ${{ needs.build-process.outputs.repo }}
WS: ${{ gitea.workspace }}
- name: Send notification if test crashed
if: ${{ env.ERR == 'true' || steps.test-script.outcome == 'failure' }}
run: |
issueid=1
errors=$(cat errors.log)
body="Testing images finish with some errors. $errors"
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ gitea.server_url }}
REPO: ${{ needs.build-process.outputs.repo }}

View File

@ -0,0 +1,126 @@
name: Full building alt images
on:
push:
tags:
- 'sisyphus_*'
jobs:
build-process:
runs-on: alt-sisyphus
outputs:
branch: ${{ env.BRANCH }}
org: ${{ env.ORG }}
url: ${{ env.URL }}
repo: ${{ env.REPO }}
buildres: ${{ steps.build-script.outcome }}
steps:
- name: Check workspace
run: |
repourl=$(echo $GU | cut -d '/' -f 3)
echo "URL=$repourl" >> ${GITHUB_ENV}
echo $repourl
reponame=$(echo $GR | cut -d '/' -f 1)
echo "REPO=$reponame" >> ${GITHUB_ENV}
echo $reponame
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
- name: Check out current repo
uses: actions/checkout@v4
- name: Parse target branch and tag from events context, save to env
env:
EV: ${{ toJson(gitea.event) }}
run: |
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1 >> ${GITHUB_ENV}
org=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 2)
echo "ORG=$org" >> ${GITHUB_ENV}
echo "ORG=$org"
- name: Login podman gitea
run: |
echo "podman login ${{ env.URL }}"
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
env:
P_USER: ${{ secrets.PODMAN_USER }}
P_PASS: ${{ secrets.PODMAN_PASS }}
- name: Run building script
id: build-script
run: |
build_args="-b $BR -o $ORG --skip-images alt/distroless-devel"
if [[ $ORG == 'k8s' ]]; then build_args="$build_args --tags tags.toml --overwrite-organization $ORG-$BR --skip-images k8s/kube-apiserver k8s/kube-controller-manager k8s/kube-proxy k8s/kube-scheduler"; fi
echo "build.py $build_args"
${{ gitea.workspace }}/build.py $build_args
env:
ORG: ${{ env.ORG }}
BR: ${{ env.BRANCH }}
continue-on-error: true
- name: Send notification if build crashed
if: ${{ steps.build-script.outcome != 'success' }}
run: |
issueid=1
body="Building images finish with some errors."
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
- name: Delete event tag
run: |
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
echo "tag $tagname is deleted"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
EV: ${{ toJson(gitea.event) }}
test-process:
needs: build-process
if: ${{ needs.build-process.outputs.buildres == 'success' }}
runs-on: alt-sisyphus
steps:
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
- name: Check out current repo
uses: https://gitea.com/actions/checkout@v4
- name: Test
id: test-script
continue-on-error: true
run: |
$WS/.gitea/workflows/testscript $BR $ORG $URL $REPO $WS
cat haserr.log >> ${GITHUB_ENV}
echo "test process finished"
env:
BR: ${{ needs.build-process.outputs.branch }}
ORG: ${{ needs.build-process.outputs.org }}
URL: ${{ needs.build-process.outputs.url }}
REPO: ${{ needs.build-process.outputs.repo }}
WS: ${{ gitea.workspace }}
- name: Send notification if test crashed
if: ${{ env.ERR == 'true' || steps.test-script.outcome == 'failure' }}
run: |
issueid=1
errors=$(cat errors.log)
body="Testing images finish with some errors. $errors"
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ gitea.server_url }}
REPO: ${{ needs.build-process.outputs.repo }}

View File

@ -0,0 +1,147 @@
name: Building alt images
on:
push:
tags:
- '*_*/*'
jobs:
build-process:
runs-on: alt-latest
outputs:
branch: ${{ env.BRANCH }}
image: ${{ env.IMAGE }}
url: ${{ env.URL }}
repo: ${{ env.REPO }}
buildres: ${{ steps.build-script.outcome }}
test: ${{ env.TEST }}
steps:
- name: Check workspace
run: |
repourl=$(echo $GU | cut -d '/' -f 3)
echo "URL=$repourl" >> ${GITHUB_ENV}
echo "URL=$repourl"
reponame=$(echo $GR | cut -d '/' -f 1)
echo "REPO=$reponame" >> ${GITHUB_ENV}
echo "REPO=$reponame"
env:
GU: ${{ gitea.server_url }}
GR: ${{ gitea.repository }}
- name: Update apt
uses: actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah jq curl
echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc"
apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc
- name: Check out current repo
uses: actions/checkout@v4
- name: Login podman gitea
run: |
echo "podman login ${{ env.URL }}"
podman login --username $P_USER --password $P_PASS ${{ env.URL }}
env:
P_USER: ${{ secrets.PODMAN_USER }}
P_PASS: ${{ secrets.PODMAN_PASS }}
- name: Check files in the repository
run: |
ls -a ${{ gitea.workspace }}
- name: Parse target branch and tag from events context, save to env
env:
EV: ${{ toJson(gitea.event) }}
run: |
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1
echo $EV | jq '.ref' -r | sed "s/refs\/tags\//BRANCH=/g" | cut -d '_' -f 1 >> ${GITHUB_ENV}
localimage=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 2)
echo "IMAGE=$localimage" >> ${GITHUB_ENV}
echo "IMAGE=$localimage"
- name: Get test for image
run: |
if test -f ${{ gitea.workspace }}/org/$IM/test; then testscript=$(cat ${{ gitea.workspace }}/org/$IM/test); else testscript=""; fi
echo "TEST=$testscript" >> ${GITHUB_ENV}
env:
IM: ${{ env.IMAGE }}
BR: ${{ env.BRANCH }}
- name: Run building script
id: build-script
run: |
echo "build.py -i $IM -b $BR"
${{ gitea.workspace }}/build.py -i $IM -b $BR
env:
IM: ${{ env.IMAGE }}
BR: ${{ env.BRANCH }}
continue-on-error: true
- name: Send notification if build crashed
if: ${{ steps.build-script.outcome != 'success' }}
run: |
issueid=1
body="Building image $IM finish with some errors."
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
IM: ${{ env.IMAGE }}
- name: Delete event tag
run: |
tagname=$(echo $EV | jq '.ref' -r | sed "s/refs\/tags\///g")
curl -X 'DELETE' "$URL/api/v1/repos/$REPO/image-forge/tags/$tagname?token=$T" -H 'accept: application/json' -s
echo "tag $tagname is deleted"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ env.BRANCH }}
URL: ${{ gitea.server_url }}
REPO: ${{ env.REPO }}
EV: ${{ toJson(gitea.event) }}
test-process:
needs: build-process
if: ${{ needs.build-process.outputs.buildres == 'success' }}
runs-on: alt-latest
steps:
- name: Update apt
uses: https://gitea.basealt.ru/actions/init-alt-env@v1
- name: Install requires
run: |
echo "apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl"
apt-get install -y python3-module-tomli python3-module-jinja2 podman buildah curl
- name: Run test
id: test-script
if: ${{ needs.build-process.outputs.test != '' }}
continue-on-error: true
run: |
if [[ $BR = 'p10' ]]; then podman run --rm --entrypoint="/bin/sh" $URL/$IM:$BR -c "$TEST"; else podman run --rm --entrypoint="/usr/bin/sh" $URL/$IM:$BR -c "$TEST"; fi
env:
IM: ${{ needs.build-process.outputs.image }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ needs.build-process.outputs.url }}
REPO: ${{ needs.build-process.outputs.repo }}
TEST: ${{ needs.build-process.outputs.test }}
- name: Run special test
id: special-test
if: ${{ needs.build-process.outputs.test == '' }}
continue-on-error: true
run: |
if [[ $IM = 'alt/distroless-true' ]]; then podman run --rm $URL/$IM:$BR true; fi
if [[ $IM = 'alt/distroless-gotop' ]]; then podman run --rm $URL/$IM:$BR --version; fi
env:
IM: ${{ needs.build-process.outputs.image }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ needs.build-process.outputs.url }}
REPO: ${{ needs.build-process.outputs.repo }}
- name: Send notification if test crashed
if: ${{ steps.test-script.outcome == 'failure' || steps.special-test.outcome == 'failure' }}
run: |
issueid=1
errors=$(cat errors.log)
body="Testing image $IM finish with some errors."
curl -X 'POST' "$URL/api/v1/repos/$REPO/image-forge/issues/$issueid/comments?token=$T" -H 'accept: application/json' -H 'Content-Type: application/json' -d "{ \"body\": \"$body\" }" -s
echo "notification about test error is sent to issue $issueid"
env:
T: ${{ secrets.TOKEN }}
BR: ${{ needs.build-process.outputs.branch }}
URL: ${{ gitea.server_url }}
REPO: ${{ needs.build-process.outputs.repo }}
IM: ${{ needs.build-process.outputs.image }}

View File

@ -29,6 +29,7 @@ If you push to the users repository, then organiztion is your username.
## Dependencies
On x86_64 machine using p10 branch you need:
- `python3-module-tomli`
- `python3-module-jinja2`
- `qemu-user-static-binfmt-aarch64` to build for arm64 architecture
- `qemu-user-static-binfmt-arm` to build for arm architecture
- `qemu-user-static-binfmt-ppc` to build for ppc64le architecture

View File

@ -225,7 +225,7 @@ class DockerBuilder:
self,
template: str,
organization: str,
install_pakages=None,
install_packages=None,
**kwargs,
) -> str:
if self.registry:
@ -237,7 +237,7 @@ class DockerBuilder:
rendered = Template(template).render(
alt_image=alt_image,
branch=self.branch,
install_pakages=install_pakages,
install_packages=install_packages,
organization=organization,
registry=registry,
**kwargs,
@ -247,7 +247,7 @@ class DockerBuilder:
@forall_images(consume_result=True)
def render_dockerfiles(self, **kwargs):
def install_pakages(*names):
def install_packages(*names):
tasks = self.tasks.get(self.branch, kwargs["image"])
linux32 = '$([ "$(rpm --eval %_host_cpu)" = i586 ] && echo linux32)'
if tasks:
@ -273,7 +273,7 @@ class DockerBuilder:
rendered = self.render_template(
dockerfile_template.read_text(),
self.overwrite_organization,
install_pakages,
install_packages,
)
kwargs["dockerfile"].write_text(rendered + "\n")
@ -638,8 +638,8 @@ class ImagesInfo:
def parse_args():
stages = ["build", "remove_dockerfiles", "render_dockerfiles", "push"]
arches = ["amd64", "386", "arm64", "arm", "ppc64le"]
branches = ["p9", "p10", "sisyphus"]
arches = ["amd64", "386", "arm64"]
branches = ["p11", "p10", "sisyphus", "c10f1", "c10f2"]
organizations = list(ORG_DIR.iterdir())
images = [f"{o.name}/{i.name}" for o in organizations for i in o.iterdir()]
organizations = [o.name for o in organizations]
@ -654,7 +654,8 @@ def parse_args():
nargs="+",
default=images,
choices=images,
help="list of branches",
metavar="IMAGE_NAME",
help="list of images to build",
)
images_group.add_argument(
"-o",
@ -664,10 +665,18 @@ def parse_args():
choices=organizations,
help="build all images from these organizations",
)
parser.add_argument(
"--skip-images",
nargs="+",
default=[],
choices=images,
metavar="IMAGE_NAME",
help="list of images to skip",
)
parser.add_argument(
"-r",
"--registry",
default="registry.altlinux.org",
default="gitea.basealt.ru",
)
parser.add_argument(
"--overwrite-organization",
@ -696,27 +705,20 @@ def parse_args():
parser.add_argument(
"--sign",
)
parser.add_argument(
"--skip-images",
nargs="+",
default=[],
choices=images,
help="list of skipping images",
)
parser.add_argument(
"-a",
"--arches",
nargs="+",
default=arches,
choices=arches,
help="list of arches",
help="build images for these architectures",
)
parser.add_argument(
"--skip-arches",
nargs="+",
default=[],
choices=arches,
help="list of skipping arches",
help="list of architectures to skip",
)
parser.add_argument(
"-b",
@ -724,28 +726,28 @@ def parse_args():
nargs="+",
default=branches,
choices=branches,
help="list of branches",
help="build images for these branches",
)
parser.add_argument(
"--skip-branches",
nargs="+",
default=[],
choices=branches,
help="list of skipping branches",
help="list of branches to skip",
)
parser.add_argument(
"--stages",
nargs="+",
default=stages,
choices=stages,
help="list of stages",
help="list of stages to go through",
)
parser.add_argument(
"--skip-stages",
nargs="+",
default=[],
choices=stages,
help="list of skipping stages",
help="list of stages to skip",
)
args = parser.parse_args()

View File

@ -1,65 +1,8 @@
["alt/buildpack-deps"]
skip-branches = [ "p9" ]
["alt/distroless-base"]
skip-branches = [ "p9" ]
["alt/openjdk21"]
skip-arches = [ "386" ]
["alt/distroless-builder"]
skip-branches = [ "p9" ]
["alt/distroless-devel"]
skip-branches = [ "p9" ]
["alt/distroless-gotop"]
skip-branches = [ "p9" ]
["alt/distroless-static"]
skip-branches = [ "p9" ]
["alt/distroless-true"]
skip-branches = [ "p9" ]
["alt/gitea"]
skip-branches = [ "p9" ]
["alt/node"]
skip-branches = [ "p9" ]
["alt/unit"]
skip-branches = [ "p9" ]
["alt/prometheus"]
skip-branches = [ "p9" ]
["alt/registry"]
skip-branches = [ "p9" ]
["k8s/cert-manager-cainjector"]
skip-branches = [ "p9" ]
["k8s/cert-manager-controller"]
skip-branches = [ "p9" ]
["k8s/cert-manager-webhook"]
skip-branches = [ "p9" ]
["k8s/coredns"]
skip-branches = [ "p9" ]
["k8s/etcd"]
skip-branches = [ "p9" ]
["k8s/kube-apiserver"]
skip-branches = [ "p9" ]
["k8s/kube-controller-manager"]
skip-branches = [ "p9" ]
["k8s/kube-proxy"]
skip-branches = [ "p9" ]
["k8s/kube-scheduler"]
skip-branches = [ "p9" ]
["k8s/pause"]
skip-branches = [ "p9" ]
["alt/ansible"]
skip-arches = [ "c10f2", "c10f1" ]

View File

@ -0,0 +1,17 @@
FROM {{ registry }}{{ organization }}/node:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="ansible"
LABEL org.opencontainers.image.description="A radically simple IT automation system"
LABEL org.opencontainers.image.source="http://www.ansible.com"
LABEL org.opencontainers.image.licenses="GPL-3.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"ansible-vim",
"ansible-core",
"ansible-lint"
) }}
WORKDIR /etc/ansible/playbooks

1
org/alt/ansible/test Normal file
View File

@ -0,0 +1 @@
ansible --version

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("apache2") }}
LABEL org.opencontainers.image.title="apache2"
LABEL org.opencontainers.image.description="The most widely used Web server on the Internet"
LABEL org.opencontainers.image.source="http://httpd.apache.org"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("apache2") }}
EXPOSE 80

1
org/alt/apache2/test Normal file
View File

@ -0,0 +1 @@
apachectl -v

View File

@ -2,6 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("glibc-gconv-modules", "glibc-locales", "tzdata") }}
{{ install_packages("glibc-gconv-modules", "glibc-locales", "tzdata") }}
CMD ["bash"]

1
org/alt/base/test Normal file
View File

@ -0,0 +1 @@
LC_ALL=ru_RU.UTF-8 TZ=/usr/share/zoneinfo/Europe/Moscow date| grep MSK

View File

@ -2,9 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages(
LABEL org.opencontainers.image.title="buildpack-deps-curl"
LABEL org.opencontainers.image.licenses="GPLv2"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"ca-certificates",
"curl",
"gnupg",
"wget"
) }}
) }}

View File

@ -0,0 +1 @@
curl --version && gpg --version

View File

@ -2,8 +2,11 @@ FROM {{ registry }}{{ organization }}/buildpack-deps-curl:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="buildpack-deps-scm"
LABEL org.opencontainers.image.licenses="GPLv2"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_pakages(
{{ install_packages(
"git",
"mercurial",
"openssh-clients",

View File

@ -0,0 +1 @@
git --version && hg --version

View File

@ -2,7 +2,11 @@ FROM {{ registry }}{{ organization }}/buildpack-deps-scm:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages(
LABEL org.opencontainers.image.title="buildpack-deps"
LABEL org.opencontainers.image.licenses="GPLv2"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"ImageMagick",
"autoconf",
"automake",

View File

@ -0,0 +1 @@
gcc --version && make --version

View File

@ -2,28 +2,33 @@ FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="devel"
LABEL org.opencontainers.image.description="This image is only for devel or testing purposes"
LABEL org.opencontainers.image.licenses="GPLv2"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
# install editor
{{ install_pakages("vim-console") }}
{{ install_packages("vim-console") }}
# install debugging tools
{{ install_pakages("strace", "gdb") }}
{{ install_packages("strace", "gdb") }}
# install document viewers
{{ install_pakages("man") }}
{{ install_packages("man") }}
# install version control system
{{ install_pakages("git-core", "perl-Git") }}
{{ install_packages("git-core", "perl-Git") }}
# install network utils
{{ install_pakages("iproute2", "iputils", "wget", "curl") }}
{{ install_packages("iproute2", "iputils", "wget", "curl") }}
# install file utils
{{ install_pakages("lsof", "ripgrep") }}
{{ install_packages("lsof", "ripgrep") }}
# install shell and completions
{{ install_pakages("zsh", "zsh-completions") }}
{{ install_packages("zsh", "zsh-completions") }}
# install compilation utils
{{ install_pakages("make", "gcc", "gcc-c++") }}
{{ install_packages("make", "gcc", "gcc-c++") }}
CMD ["zsh"]

1
org/alt/devel/test Normal file
View File

@ -0,0 +1 @@
man --version && ip -V && vim --version | grep vim

View File

@ -4,8 +4,8 @@ builder-install-packages = [
'{{if_branches(["p10"], "glibc-nss")}}',
"glibc-timezones",
"libselinux",
'{{if_branches(["p9", "p10"], "libssl1.1")}}',
'{{if_branches(["sisyphus"], "libssl1.1")}}',
'{{if_branches(["p10"], "libssl1.1")}}',
'{{if_branches(["p11"], "libssl3")}}',
'{{if_branches(["sisyphus"], "libssl3")}}',
"tzdata",
"zlib",

View File

@ -2,9 +2,14 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="distroless-builder"
LABEL org.opencontainers.image.description="This image is used to build tarballs for distroless images"
LABEL org.opencontainers.image.licenses="GPLv2"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
RUN echo %_excludedocs 1 >> /etc/rpm/macros
RUN rpm -qalds | awk '/^normal/{print $2}' | xargs rm -rf
{{ install_pakages("python3", "glibc-utils", "apt-repo") }}
{{ install_packages("python3", "glibc-utils", "apt-repo") }}
WORKDIR /usr/src/distroless
RUN mkdir file-lists
RUN useradd -m nonroot

View File

@ -1,3 +1,3 @@
ALT dockerfile for distroless-builder image.
This images is using to build tarball for distroless images.
This image is used to build tarballs for distroless images.

View File

@ -0,0 +1 @@
apt-repo --version

View File

@ -0,0 +1 @@
ss -V

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("etcd") }}
LABEL org.opencontainers.image.title="etcd"
LABEL org.opencontainers.image.description="Distributed reliable key-value store for the most critical data of a distributed system"
LABEL org.opencontainers.image.source="https://github.com/etcd-io/etcd"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("etcd") }}
VOLUME /data

1
org/alt/etcd/test Normal file
View File

@ -0,0 +1 @@
etcdctl version

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("gitea", "openssh-server", "gosu") }}
LABEL org.opencontainers.image.title="gitea"
LABEL org.opencontainers.image.description="Git with a cup of tea, painless self-hosted git service"
LABEL org.opencontainers.image.source="https://github.com/go-gitea/gitea"
LABEL org.opencontainers.image.licenses="MIT"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("gitea", "openssh-server", "gosu") }}
ENV USER gitea
ENV HOME /var/lib/gitea

1
org/alt/gitea/test Normal file
View File

@ -0,0 +1 @@
gitea --version

View File

@ -0,0 +1,11 @@
FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="golang"
LABEL org.opencontainers.image.description="The Golang environment for development"
LABEL org.opencontainers.image.source="https://github.com/golang/go"
LABEL org.opencontainers.image.licenses="BSD"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("golang") }}

1
org/alt/golang/test Normal file
View File

@ -0,0 +1 @@
go version

View File

@ -0,0 +1,22 @@
FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="grafana"
LABEL org.opencontainers.image.description="Metrics dashboard and graph editor"
LABEL org.opencontainers.image.source="https://github.com/grafana/grafana"
LABEL org.opencontainers.image.licenses="AGPL-3.0-only AND Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("grafana") }}
USER grafana
EXPOSE 3000
VOLUME ["/var/lib/grafana"]
ENV GF_PATHS_PROVISIONING=/etc/grafana/provisioning
ENV GF_AUTH_ANONYMOUS_ENABLED=true
ENV GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
ENTRYPOINT [ "/usr/bin/grafana" ]
CMD [ "server", "--config=/etc/grafana/grafana.ini", "--homepath=/usr/share/grafana", "--packaging=docker", "-configOverrides='cfg:default.paths.provisioning=/etc/grafana/provisioning cfg:default.paths.data=/var/lib/grafana cfg:default.paths.logs=/var/log/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins'" ]

View File

@ -0,0 +1,6 @@
# Prometheus image
Command for run:
```
docker run -d --name="grafana" -p 3000:3000 -v grafana-data:/var/lib/grafana IMAGENAME
```

1
org/alt/grafana/test Normal file
View File

@ -0,0 +1 @@
grafana --version

View File

@ -0,0 +1,19 @@
FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="loki"
LABEL org.opencontainers.image.description="Like Prometheus, but for logs"
LABEL org.opencontainers.image.source="https://github.com/grafana/loki"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("loki") }}
USER _loki:_loki
VOLUME ["/var/lib/loki", "/etc/loki/loki.yml"]
EXPOSE 3100
ENTRYPOINT ["/usr/bin/loki"]
CMD ["-config.file=/etc/loki/loki.yaml"]

6
org/alt/loki/README.md Normal file
View File

@ -0,0 +1,6 @@
# Prometheus image
Command for run:
```
docker run -d --name="loki" -p 3100:3100 -v loki-data:/var/lib/loki -v loki-config:/etc/loki/loki.yaml IMAGENAME
```

1
org/alt/loki/test Normal file
View File

@ -0,0 +1 @@
loki -version -config.file=/etc/loki/loki.yaml

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("nginx", "apache2-html", "tzdata") }}
LABEL org.opencontainers.image.title="nginx"
LABEL org.opencontainers.image.description="Fast HTTP server, extremely useful as an Apache frontend"
LABEL org.opencontainers.image.source="https://nginx.org/"
LABEL org.opencontainers.image.licenses="BSD"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("nginx", "apache2-html", "tzdata") }}
RUN cd /etc/nginx/sites-enabled.d && ln -s ../sites-available.d/default.conf .

1
org/alt/nginx/test Normal file
View File

@ -0,0 +1 @@
nginx -v

View File

@ -2,10 +2,16 @@ FROM {{ registry }}{{ organization }}/buildpack-deps:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="node"
LABEL org.opencontainers.image.description="Evented I/O for V8 Javascript"
LABEL org.opencontainers.image.source="https://github.com/nodejs/node"
LABEL org.opencontainers.image.licenses="MIT"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
RUN groupadd --gid 1000 node \
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
{{ install_pakages(
{{ install_packages(
"node",
"npm",
"yarn"

1
org/alt/node/test Normal file
View File

@ -0,0 +1 @@
node -v

View File

@ -0,0 +1,14 @@
FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="openjdk21"
LABEL org.opencontainers.image.description="OpenJDK 21 Runtime Environment"
LABEL org.opencontainers.image.source="https://openjdk-sources.osci.io"
LABEL org.opencontainers.image.licenses="Apache-1.1 and Apache-2.0 and BSD and BSD with advertising and GPL-2.0 and GPL-2.0 with exceptions and IJG and LGPL-2.0+ and MIT and MPL-2.0 and ALT-Public-Domain and W3C and Zlib and ISC and FTL and RSA-MD"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"java-21-openjdk",
"java-21-openjdk-devel"
) }}

1
org/alt/openjdk21/test Normal file
View File

@ -0,0 +1 @@
javac --version && java --version

View File

@ -0,0 +1,14 @@
FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="php"
LABEL org.opencontainers.image.description="The PHP language environment for development"
LABEL org.opencontainers.image.source="https://github.com/php/php-src"
LABEL org.opencontainers.image.licenses="PHP-3.01"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"php8.2",
"php8.2-xdebug",
) }}

1
org/alt/php/test Normal file
View File

@ -0,0 +1 @@
php --version

View File

@ -0,0 +1,20 @@
FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="postgresql16"
LABEL org.opencontainers.image.description="PostgreSQL rograms and libraries"
LABEL org.opencontainers.image.source="https://github.com/postgres/postgres"
LABEL org.opencontainers.image.licenses="PostgreSQL"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("postgresql16","postgresql16-server") }}
RUN usermod -a -G postgres postgres
RUN chown -R postgres:postgres /var/lib/pgsql
USER postgres
WORKDIR /var/lib/pgsql
EXPOSE 5432
VOLUME [ "/var/lib/pgsql/data" ]

View File

@ -0,0 +1,16 @@
dockerfiles-alt-postgresql
==========================
ALT dockerfile for postgresql.
Copy Dockerfile somewhere and build the image:
`$ docker build --rm -t <username>/postgresql .`
And launch the rabbitmq-server container:
`docker run -d -p 5432:5432 --name="postgresql" -v pgsql-data:/var/lib/pgsql/data IMAGENAME`
First steps to start service and create db:
`/usr/bin/initdb /var/lib/pgsql/data`
`/usr/bin/pg_ctl -D /var/lib/pgsql/data -l logfile start`
`/usr/bin/createdb mydb`
`psql mydb`

1
org/alt/postgresql/test Normal file
View File

@ -0,0 +1 @@
pg_ctl --version

View File

@ -0,0 +1,20 @@
FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="alertmanager"
LABEL org.opencontainers.image.description="The Alertmanager handles alerts sent by client applications"
LABEL org.opencontainers.image.source="https://github.com/prometheus/alertmanager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("prometheus-alertmanager") }}
WORKDIR /var/lib/prometheus/alertmanager
RUN useradd -r -u 10001 alertmanager
RUN usermod -a -G prometheus alertmanager
USER alertmanager
EXPOSE 9093
VOLUME [ "/var/lib/prometheus/alertmanager" ]
ENTRYPOINT [ "/usr/bin/prometheus/alertmanager" ]
CMD [ "--config.file=/etc/prometheus/alertmanager.yml" ]

View File

@ -0,0 +1,11 @@
# Prometheus alertmanager image
Command for run:
```
docker run -d --name="alertmanager" -p 9093:9093 -v promdata-am:/var/lib/prometheus/alertmanager IMAGENAME
```
*If you want to be able to view services on localhost, instead of -p, specify the flag:
```
--network="host"
```

View File

@ -0,0 +1 @@
alertmanager --version

View File

@ -0,0 +1,19 @@
FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="prometheus-node_exporter"
LABEL org.opencontainers.image.description="Prometheus exporter for hardware and OS metrics exposed by *NIX kernels"
LABEL org.opencontainers.image.source="https://github.com/prometheus/node_exporter"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("prometheus-node_exporter") }}
WORKDIR /var/lib/prometheus/node-exporter
RUN useradd -r -u 10001 node_exporter
RUN usermod -a -G prometheus node_exporter
USER node_exporter
EXPOSE 9100
VOLUME [ "/var/lib/prometheus/node-exporter" ]
ENTRYPOINT [ "/usr/bin/prometheus-node_exporter" ]

View File

@ -0,0 +1,11 @@
# Prometheus node_exporter image
Command for run:
```
docker run -d --name="prometheus-node_exporter" -p 9100:9100 -v promdata-ne:/var/lib/prometheus/node-exporter IMAGENAME
```
*If you want to be able to view services on localhost, instead of -p, specify the flag:
```
--network="host"
```

View File

@ -0,0 +1 @@
node_exporter --version

View File

@ -2,10 +2,17 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("prometheus") }}
LABEL org.opencontainers.image.title="prometheus"
LABEL org.opencontainers.image.description="Prometheus monitoring system and time series database"
LABEL org.opencontainers.image.source="https://github.com/prometheus/prometheus"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("prometheus") }}
WORKDIR /var/lib/prometheus
USER prometheus
EXPOSE 9090
VOLUME [ "/var/lib/prometheus" ]
ENTRYPOINT [ "/usr/bin/prometheus", "--config.file=/etc/prometheus/prometheus.yml"]
ENTRYPOINT [ "/usr/bin/prometheus" ]
CMD [ "--config.file=/etc/prometheus/prometheus.yml" ]

1
org/alt/prometheus/test Normal file
View File

@ -0,0 +1 @@
prometheus --version

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages(
LABEL org.opencontainers.image.title="python"
LABEL org.opencontainers.image.description="Python 3 and tools needed for development"
LABEL org.opencontainers.image.source="https://github.com/python/cpython"
LABEL org.opencontainers.image.licenses="Python"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"python3-module-pip",
"python3-module-setuptools",
"python3-dev",

1
org/alt/python/test Normal file
View File

@ -0,0 +1 @@
python3 --version

View File

@ -0,0 +1,17 @@
FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="python"
LABEL org.opencontainers.image.description="Python 2 and tools needed for development"
LABEL org.opencontainers.image.source="https://www.python.org/downloads/source"
LABEL org.opencontainers.image.licenses="Python-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"python-module-setuptools",
"python-dev",
"gcc",
) }}
CMD ["python2"]

13
org/alt/python2/README.md Normal file
View File

@ -0,0 +1,13 @@
dockerfiles-alt-python
=======================
ALT dockerfile for python.
Image contains python(2) and tools to get upstream python modules. Main purpose
of the image is to run python apps using upstream modules.
Copy Dockerfile somewhere and build the image:
`$ docker build --rm -t <image_name> .`
And launch the python container:
`docker run -it <image_name>`

1
org/alt/python2/test Normal file
View File

@ -0,0 +1 @@
python2 --version

View File

@ -0,0 +1,19 @@
FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="rabbitmq"
LABEL org.opencontainers.image.description="The RabbitMQ server"
LABEL org.opencontainers.image.source="https://github.com/rabbitmq/rabbitmq-server"
LABEL org.opencontainers.image.licenses="MPL-1.1"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("rabbitmq-server") }}
USER rabbitmq
WORKDIR /var/lib/rabbitmq
EXPOSE 5672 25672
VOLUME [ "/var/lib/rabbitmq", "/etc/rabbitmq" ]
ENTRYPOINT [ "/usr/sbin/rabbitmq-server" ]
CMD ["start", "rabbitmq"]

View File

@ -0,0 +1,18 @@
dockerfiles-alt-rabbitmq
========================
ALT dockerfile for rabbitmq.
Copy Dockerfile somewhere and build the image:
`$ docker build --rm -t <username>/rabbitmq .`
And launch the rabbitmq-server container:
`docker run -d -p 5672:5672 --name="rabbitmq" -v rabbit-data:/var/lib/rabbitmq -v rabbit-conf:/etc/rabbitmq IMAGENAME`
With mounting /etc/rabbitmq/rabbitmq-env.conf could be change settings of rabbitmq-server.
It could be test via:
`curl localhost:5672`
For starting app:
`rabbitmqctl start_app`

1
org/alt/rabbitmq/test Normal file
View File

@ -0,0 +1 @@
rabbitmqctl version

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("docker-registry") }}
LABEL org.opencontainers.image.title="registry"
LABEL org.opencontainers.image.description="The Docker toolset to pack, ship, store, and deliver content"
LABEL org.opencontainers.image.source="https://github.com/docker/distribution"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("docker-registry") }}
RUN ln -sf /usr/bin/docker-registry /bin/registry

1
org/alt/registry/test Normal file
View File

@ -0,0 +1 @@
registry --version

View File

@ -2,6 +2,12 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("irb") }}
LABEL org.opencontainers.image.title="ruby"
LABEL org.opencontainers.image.description="Interactive Ruby Shell"
LABEL org.opencontainers.image.source="https://github.com/ruby/ruby"
LABEL org.opencontainers.image.licenses="BSD-2-Clause or Ruby"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("irb") }}
CMD ["irb"]

1
org/alt/ruby/test Normal file
View File

@ -0,0 +1 @@
ruby --version

View File

@ -2,9 +2,15 @@ FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="systemd"
LABEL org.opencontainers.image.description="System and Session Manager"
LABEL org.opencontainers.image.source="https://github.com/systemd/systemd"
LABEL org.opencontainers.image.licenses="LGPLv2.1+"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
ENV container docker
{{ install_pakages("systemd-sysvinit") }}
{{ install_packages("systemd-sysvinit") }}
RUN ( \
cd /lib/systemd/system/sysinit.target.wants/; \

1
org/alt/systemd/test Normal file
View File

@ -0,0 +1 @@
ls -la /sbin/init | grep systemd

View File

@ -0,0 +1,13 @@
FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="trivy"
LABEL org.opencontainers.image.description="A Fast Vulnerability Scanner for Containers"
LABEL org.opencontainers.image.source="https://aquasecurity.github.io/trivy"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("trivy") }}
ENTRYPOINT [ "trivy" ]

10
org/alt/trivy/README.md Normal file
View File

@ -0,0 +1,10 @@
dockerfiles-alt-trivy
=====================
ALT dockerfile for trivy.
Copy dockerfile somewhere and built the image:
`$ docker build --rm -t <username>/trivy .`
And launch the trivy container
`$ docker run -it <username>/trivy`

1
org/alt/trivy/test Normal file
View File

@ -0,0 +1 @@
trivy --version

View File

@ -2,6 +2,12 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="unit"
LABEL org.opencontainers.image.description="NGINX Unit is a lightweight and versatile web-server"
LABEL org.opencontainers.image.source="https://github.com/nginx/unit"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
RUN apt-get update && \
apt-get install -y unit curl tzdata; \
rm -f /var/cache/apt/archives/*.rpm \

1
org/alt/unit/test Normal file
View File

@ -0,0 +1 @@
unitd --version

View File

@ -0,0 +1,19 @@
FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="zot"
LABEL org.opencontainers.image.description="A production-ready vendor-neutral OCI-native container image registry (purely based on OCI Distribution Specification)"
LABEL org.opencontainers.image.source="https://github.com/project-zot/zot"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("zot") }}
USER _zot:_zot
VOLUME ["/var/lib/zot"]
EXPOSE 5000
ENTRYPOINT ["/usr/bin/zot"]
CMD ["serve", "/etc/zot/config.json"]

1
org/alt/zot/test Normal file
View File

@ -0,0 +1 @@
zot verify /etc/zot/config.json

View File

@ -0,0 +1,17 @@
FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="cert-manager-acmesolver"
LABEL org.opencontainers.image.description="HTTP server used to solve ACME challenges."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger
USER 1000
ENTRYPOINT ["/usr/bin/acmesolver"]

View File

@ -0,0 +1 @@
acmesolver --help

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("cert-manager") }}
LABEL org.opencontainers.image.title="cert-manager-cainjector"
LABEL org.opencontainers.image.description="cert-manager CA injector is a Kubernetes addon to automate the injection of CA data into webhooks and APIServices from cert-manager certificates."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger

View File

@ -0,0 +1 @@
cainjector --help

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("cert-manager") }}
LABEL org.opencontainers.image.title="cert-manager-controller"
LABEL org.opencontainers.image.description="Automatically provision and manage TLS certificates in Kubernetes."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger

View File

@ -0,0 +1 @@
controller --help

View File

@ -0,0 +1,17 @@
FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
LABEL org.opencontainers.image.title="cert-manager-startupapicheck"
LABEL org.opencontainers.image.description="Check that cert-manager started successfully."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger
USER 1000
ENTRYPOINT ["/usr/bin/startupapicheck"]

View File

@ -0,0 +1 @@
startupapicheck --help

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("cert-manager") }}
LABEL org.opencontainers.image.title="cert-manager-webhook"
LABEL org.opencontainers.image.description="The webhook component provides API validation, mutation and conversion functionality for cert-manager."
LABEL org.opencontainers.image.source="https://github.com/cert-manager/cert-manager"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger

View File

@ -0,0 +1 @@
webhook --help

View File

@ -2,6 +2,12 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("coredns") }}
LABEL org.opencontainers.image.title="coredns"
LABEL org.opencontainers.image.description="CoreDNS is a DNS server that chains plugins"
LABEL org.opencontainers.image.source="https://github.com/coredns/coredns"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("coredns") }}
ENTRYPOINT ["/usr/bin/coredns"]

1
org/k8s/coredns/test Normal file
View File

@ -0,0 +1 @@
coredns --version

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("etcd") }}
LABEL org.opencontainers.image.title="etcd"
LABEL org.opencontainers.image.description="Distributed reliable key-value store for the most critical data of a distributed system"
LABEL org.opencontainers.image.source="https://github.com/etcd-io/etcd"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("etcd") }}
VOLUME /data

1
org/k8s/etcd/test Normal file
View File

@ -0,0 +1 @@
etcd --version

View File

@ -2,6 +2,12 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("cni-plugin-flannel") }}
LABEL org.opencontainers.image.title="flannel-cni-plugin"
LABEL org.opencontainers.image.description="CNI network plugin that is powered by flannel"
LABEL org.opencontainers.image.source="https://github.com/flannel-io/cni-plugin"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("cni-plugin-flannel") }}
RUN cp /usr/libexec/cni/flannel /flannel

View File

@ -2,7 +2,13 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages(
LABEL org.opencontainers.image.title="flannel"
LABEL org.opencontainers.image.description="Network fabric for containers"
LABEL org.opencontainers.image.source="https://github.com/flannel-io/flannel"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages(
"iproute2",
"net-tools",
"ca-certificates",

1
org/k8s/flannel/test Normal file
View File

@ -0,0 +1 @@
flanneld --version

View File

@ -2,6 +2,12 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("kubernetes-master") }}
LABEL org.opencontainers.image.title="kube-apiserver"
LABEL org.opencontainers.image.description="The Kubernetes API server validates and configures data for the api objects which include pods, services, replicationcontrollers, and others."
LABEL org.opencontainers.image.source="https://github.com/kubernetes/kubernetes"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("kubernetes-master") }}
ENTRYPOINT ["/usr/bin/kube-apiserver"]

View File

@ -0,0 +1 @@
kube-apiserver --version

View File

@ -2,6 +2,12 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
{{ install_pakages("kubernetes-master") }}
LABEL org.opencontainers.image.title="kube-controller-manager"
LABEL org.opencontainers.image.description="The Kubernetes controller manager is a daemon that embeds the core control loops shipped with Kubernetes."
LABEL org.opencontainers.image.source="https://github.com/kubernetes/kubernetes"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("kubernetes-master") }}
ENTRYPOINT ["/usr/bin/kube-controller-manager"]

View File

@ -0,0 +1 @@
kube-controller-manager --version

Some files were not shown because too many files have changed in this diff Show More