Compare commits

..

1 Commits

Author SHA1 Message Date
97d77b504d feat: add ingress-nginx-controller Dockerfile 2024-04-04 15:12:46 +03:00
114 changed files with 234 additions and 1761 deletions

View File

@ -1,70 +0,0 @@
#!/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

@ -1,133 +0,0 @@
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

@ -1,133 +0,0 @@
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

@ -1,126 +0,0 @@
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

@ -1,147 +0,0 @@
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

@ -1,22 +1,5 @@
# image-forge
## Wrapper
### Examples
From the repository
```shell
image-build -b sisyphus -r registry.altlinux.org --prefix=k8s-sisyphus kube-apiserver kubernetes1.28
```
From a task
```shell
image-build -b sisyphus -r test.registry.altlinux.org -t 335250 --prefix=k8s-sisyphus kube-apiserver kubernetes1.28
```
## alt images
To build `alt` images, run:
```bash
@ -46,7 +29,6 @@ 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

@ -15,7 +15,6 @@ from jinja2 import Template
ORG_DIR = Path("org")
PKG_VERSION: str = ""
class Image:
def __init__(self, canonical_name):
@ -226,7 +225,7 @@ class DockerBuilder:
self,
template: str,
organization: str,
install_packages=None,
install_pakages=None,
**kwargs,
) -> str:
if self.registry:
@ -238,7 +237,7 @@ class DockerBuilder:
rendered = Template(template).render(
alt_image=alt_image,
branch=self.branch,
install_packages=install_packages,
install_pakages=install_pakages,
organization=organization,
registry=registry,
**kwargs,
@ -248,7 +247,7 @@ class DockerBuilder:
@forall_images(consume_result=True)
def render_dockerfiles(self, **kwargs):
def install_packages(*names):
def install_pakages(*names):
tasks = self.tasks.get(self.branch, kwargs["image"])
linux32 = '$([ "$(rpm --eval %_host_cpu)" = i586 ] && echo linux32)'
if tasks:
@ -274,7 +273,7 @@ class DockerBuilder:
rendered = self.render_template(
dockerfile_template.read_text(),
self.overwrite_organization,
install_packages,
install_pakages,
)
kwargs["dockerfile"].write_text(rendered + "\n")
@ -579,7 +578,6 @@ class DockerBuilder:
"--force-rm",
f"--manifest={manifest}",
f"--platform={platforms}",
f'--build-arg=PKG_VERSION={PKG_VERSION}',
".",
]
self.run(build_cmd, cwd=image.path)
@ -640,8 +638,8 @@ class ImagesInfo:
def parse_args():
stages = ["build", "remove_dockerfiles", "render_dockerfiles", "push"]
arches = ["amd64", "386", "arm64"]
branches = ["p11", "p10", "sisyphus", "c10f1", "c10f2"]
arches = ["amd64", "386", "arm64", "arm", "ppc64le"]
branches = ["p9", "p10", "sisyphus"]
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]
@ -656,8 +654,7 @@ def parse_args():
nargs="+",
default=images,
choices=images,
metavar="IMAGE_NAME",
help="list of images to build",
help="list of branches",
)
images_group.add_argument(
"-o",
@ -667,18 +664,10 @@ 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="gitea.basealt.ru",
default="registry.altlinux.org",
)
parser.add_argument(
"--overwrite-organization",
@ -707,20 +696,27 @@ 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="build images for these architectures",
help="list of arches",
)
parser.add_argument(
"--skip-arches",
nargs="+",
default=[],
choices=arches,
help="list of architectures to skip",
help="list of skipping arches",
)
parser.add_argument(
"-b",
@ -728,32 +724,28 @@ def parse_args():
nargs="+",
default=branches,
choices=branches,
help="build images for these branches",
help="list of branches",
)
parser.add_argument(
"--skip-branches",
nargs="+",
default=[],
choices=branches,
help="list of branches to skip",
help="list of skipping branches",
)
parser.add_argument(
"--stages",
nargs="+",
default=stages,
choices=stages,
help="list of stages to go through",
help="list of stages",
)
parser.add_argument(
"--skip-stages",
nargs="+",
default=[],
choices=stages,
help="list of stages to skip",
)
parser.add_argument(
"--package-version",
help="from which package to build",
help="list of skipping stages",
)
args = parser.parse_args()
@ -766,10 +758,7 @@ def parse_args():
def main():
global PKG_VERSION
args = parse_args()
PKG_VERSION = args.package_version
arches = args.arches
images_info = ImagesInfo()
tags = Tags(args.tags, args.latest)

View File

@ -1,328 +0,0 @@
#!/bin/sh
set -uo pipefail
PROG='image-build'
HELP_MSG="$(cat <<EOF
$PROG - build an OCI image from a package
Usage: $PROG [options] <image name> <package name>
Options:
-b <branch> package repository branch
-r <registry> OCI destination registry
-t <task id> task id
--latest also tag this image as latest
--push push the image to the registry after build
--skip-build if push is true, then skip the build stage
--dry-run only print what would be done
--prefix <prefix> image name prefix
--help show this text and exit
Notes:
The image is only pushed to the destination registry
if the option --push is present.
EOF
)"
function show_help() {
printf '%s' "$HELP_MSG"
exit
}
function show_usage() {
echo "$PROG: $1" >&2
echo "Try \`image-build --help' for more information." >&2
exit 1
}
TEMP="$(getopt -n "$PROG" -o b:r:t: -l help,latest,push,skip-build,dry-run,prefix:: -- "$@")" || show_usage ""
eval set -- "$TEMP"
branch='sisyphus'
registry='registry.altlinux.org'
task_id=
latest=
push=
skip_build=
dry_run=
prefix=
while :; do
case "$1" in
--) shift; break ;;
-b) shift; branch="$1" ;;
-r) shift; registry="$1" ;;
-t) shift; task_id="$1" ;;
--latest) latest="1" ;;
--push) push="1" ;;
--skip-build) skip_build="1" ;;
--dry-run) dry_run="1" ;;
--prefix) shift; prefix="$1" ;;
-h|--help) show_help ;;
*) show_usage "unrecognized option: $1" ;;
esac
shift
done
[ "$#" -ge 2 ] || show_usage "not enough arguments"
image="$1"
package="$2"
declare -A package_urls
package_urls["c10f2"]="http://update.altsp.su/pub/distributions/ALTLinux/c10f2/branch/files/x86_64/RPMS/"
package_urls["p10"]="http://ftp.altlinux.org/pub/distributions/archive/p10/release/latest/files/x86_64/RPMS/"
package_urls["sisyphus"]="http://ftp.altlinux.org/pub/distributions/archive/sisyphus/latest/files/x86_64/RPMS/"
function handle_error() {
echo "$PROG: $1" >&2
exit 2
}
function get_binary_package_version() {
local branch="$1"
local package="$2"
local line;
line="$(curl -s "${package_urls["$branch"]}" | grep "$package")"
[ "$?" -eq 0 ] || handle_error "package not found: $package"
local version;
version="$(echo "$line" | sed -E "s/.*href=\"$package-(.+)-.+\".+/\1/")"
[ "$?" -eq 0 ] || handle_error "package version not found: $package"
echo "$version"
}
function api_get_source_package_version() {
local branch="$1"
local package="$2"
local version;
version="$(curl -s "https://rdb.altlinux.org/api/site/package_versions_from_tasks?branch=$branch&name=$package" | jq -e -r '.versions[0].version')"
[ "$?" -eq 0 ] || handle_error "error getting package version: no package $package for branch $branch"
echo "$version"
}
function api_get_source_package_version_from_task() {
local task_id="$1"
local package="$2"
local version;
version="$(curl -s "https://rdb.altlinux.org/api/task/packages/$task_id" | jq -e -r --arg package "$package" '.subtasks[].source | select(.name == $package).version')"
[ "$?" -eq 0 ] || handle_error "error getting package version: no package $package in task $task_id"
echo "$version"
}
function string_count() {
local substring="$1"
awk -F"$substring" '{ print NF-1 }'
}
case "$image" in
'etcd' | \
'flannel' | \
'flannel-cni-plugin' | \
'pause' | \
'cert-manager-acmesolver' | \
'cert-manager-cainjector' | \
'cert-manager-controller' | \
'cert-manager-startupapicheck' | \
'cert-manager-webhook')
image="k8s/$image"
version=
additional_options=
if [ -n "$task_id" ]; then
version="$(api_get_source_package_version_from_task "$task_id" "$package")"
[ "$?" -eq 0 ] || handle_error "error getting remote rpm package version: $package, task: $task_id"
tasks_file='/tmp/k8s-tasks.toml'
jq --null-input --arg branch "$branch" --arg task_id "$task_id" --arg image "$image" '{
$branch: {$task_id: [$image]},
}' | dasel -r json -w toml > "$tasks_file"
additional_options+="--tasks $tasks_file "
else
version="$(api_get_source_package_version "$branch" "$package")"
[ "$?" -eq 0 ] || handle_error "error getting remote rpm package version: $package, branch: $branch"
fi
tags_file="/tmp/k8s-tags.toml"
case "$image" in
'k8s/flannel-cni-plugin')
num_dots="$(echo "$version" | string_count '.')"
if [ "$num_dots" -eq 2 ]; then
jq --null-input --arg image "$image" --arg branch "$branch" --arg version "v$version-flannel1" '{
$image: {$branch: [$version]},
}' | dasel -r json -w toml > "$tags_file"
elif [ "$num_dots" -eq 3 ]; then
# up to the last number in version
flannel_version="${version%.*}"
# the last number in version
flannel_release="${version##*.}"
jq --null-input --arg image "$image" --arg branch "$branch" --arg version "v$flannel_version-flannel$flannel_release" '{
$image: {$branch: [$version]},
}' | dasel -r json -w toml > "$tags_file"
else
handle_error "wrong version for package $package: $version"
fi
;;
'k8s/etcd')
jq --null-input --arg image "$image" --arg branch "$branch" --arg version "$version-0" '{
$image: {$branch: [$version]},
}' | dasel -r json -w toml > "$tags_file"
;;
'k8s/pause')
jq --null-input --arg image "$image" --arg branch "$branch" --arg version "$version" '{
$image: {$branch: [$version]},
}' | dasel -r json -w toml > "$tags_file"
;;
*)
jq --null-input --arg image "$image" --arg branch "$branch" --arg version "v$version" '{
$image: {$branch: [$version]},
}' | dasel -r json -w toml > "$tags_file"
;;
esac
if [ -n "$latest" ]; then
additional_options+="--latest $branch "
fi
if [ -z "$push" ]; then
additional_options+='--skip-stages push '
elif [ -n "$skip_build" ]; then
additional_options+='--stages push '
fi
if [ -n "$dry_run" ]; then
additional_options+='--dry-run '
fi
./build.py \
--branch "$branch" \
--registry "$registry" \
--overwrite-organization "$prefix" \
--images "$image" \
--tags "$tags_file" \
$additional_options
;;
'coredns')
image="k8s/$image"
version=
additional_options=
if [ -n "$task_id" ]; then
version="$(api_get_source_package_version_from_task "$task_id" "$package")"
[ "$?" -eq 0 ] || handle_error "error getting remote rpm package version: $package, task: $task_id"
tasks_file='/tmp/k8s-tasks.toml'
jq --null-input --arg branch "$branch" --arg task_id "$task_id" --arg image "$image" '{
$branch: {$task_id: [$image]},
}' | dasel -r json -w toml > "$tasks_file"
additional_options+="--tasks $tasks_file "
else
version="$(api_get_source_package_version "$branch" "$package")"
[ "$?" -eq 0 ] || handle_error "error getting remote rpm package version: $package, branch: $branch"
fi
# if binary package
#version_str="$(echo "$package" | sed -E 's/kubernetes(.+)-.+/\1/')"
#[ "$?" -eq 0 ] || handle_error "error getting specified rpm package version: $package"
# if source package
version_str="$(echo "$package" | sed -E 's/coredns(.+)/\1/')"
[ "$?" -eq 0 ] || handle_error "error getting specified rpm package version: $package"
tags_file="/tmp/k8s-tags.toml"
jq --null-input --arg image "$image" --arg branch "$branch" --arg version "v$version" '{
$image: {$branch: [$version]},
}' | dasel -r json -w toml > "$tags_file"
if [ -n "$latest" ]; then
additional_options+="--latest $branch "
fi
if [ -z "$push" ]; then
additional_options+="--skip-stages push "
elif [ -n "$skip_build" ]; then
additional_options+="--stages push "
fi
if [ -n "$dry_run" ]; then
additional_options+="--dry-run "
fi
./build.py \
--branch "$branch" \
--registry "$registry" \
--overwrite-organization "$prefix" \
--images "$image" \
--tags "$tags_file" \
--package-version "$version_str" \
$additional_options
;;
'kube-apiserver' | 'kube-controller-manager' | 'kube-scheduler' | 'kube-proxy')
image="k8s/$image"
version=
additional_options=
if [ -n "$task_id" ]; then
version="$(api_get_source_package_version_from_task "$task_id" "$package")"
[ "$?" -eq 0 ] || handle_error "error getting remote rpm package version: $package, task: $task_id"
tasks_file='/tmp/k8s-tasks.toml'
jq --null-input --arg branch "$branch" --arg task_id "$task_id" --arg image "$image" '{
$branch: {$task_id: [$image]},
}' | dasel -r json -w toml > "$tasks_file"
additional_options+="--tasks $tasks_file "
else
version="$(api_get_source_package_version "$branch" "$package")"
[ "$?" -eq 0 ] || handle_error "error getting remote rpm package version: $package, branch: $branch"
fi
# if binary package
#version_str="$(echo "$package" | sed -E 's/kubernetes(.+)-.+/\1/')"
#[ "$?" -eq 0 ] || handle_error "error getting specified rpm package version: $package"
# if source package
version_str="$(echo "$package" | sed -E 's/kubernetes(.+)/\1/')"
[ "$?" -eq 0 ] || handle_error "error getting specified rpm package version: $package"
tags_file="/tmp/k8s-tags.toml"
jq --null-input --arg image "$image" --arg branch "$branch" --arg version "v$version" '{
$image: {$branch: [$version]},
}' | dasel -r json -w toml > "$tags_file"
if [ -n "$latest" ]; then
additional_options+="--latest $branch "
fi
if [ -z "$push" ]; then
additional_options+="--skip-stages push "
elif [ -n "$skip_build" ]; then
additional_options+="--stages push "
fi
if [ -n "$dry_run" ]; then
additional_options+="--dry-run "
fi
./build.py \
--branch "$branch" \
--registry "$registry" \
--overwrite-organization "$prefix" \
--images "$image" \
--tags "$tags_file" \
--package-version "$version_str" \
$additional_options
;;
esac

View File

@ -1,8 +1,65 @@
["alt/buildpack-deps"]
skip-branches = [ "p9" ]
["alt/openjdk21"]
skip-arches = [ "386" ]
["alt/distroless-base"]
skip-branches = [ "p9" ]
["alt/ansible"]
skip-arches = [ "c10f2", "c10f1" ]
["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" ]

View File

@ -1,17 +0,0 @@
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

View File

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

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("apache2") }}
EXPOSE 80

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,11 +2,8 @@ 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_packages(
{{ install_pakages(
"git",
"mercurial",
"openssh-clients",

View File

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

View File

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

View File

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

View File

@ -2,33 +2,28 @@ 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_packages("vim-console") }}
{{ install_pakages("vim-console") }}
# install debugging tools
{{ install_packages("strace", "gdb") }}
{{ install_pakages("strace", "gdb") }}
# install document viewers
{{ install_packages("man") }}
{{ install_pakages("man") }}
# install version control system
{{ install_packages("git-core", "perl-Git") }}
{{ install_pakages("git-core", "perl-Git") }}
# install network utils
{{ install_packages("iproute2", "iputils", "wget", "curl") }}
{{ install_pakages("iproute2", "iputils", "wget", "curl") }}
# install file utils
{{ install_packages("lsof", "ripgrep") }}
{{ install_pakages("lsof", "ripgrep") }}
# install shell and completions
{{ install_packages("zsh", "zsh-completions") }}
{{ install_pakages("zsh", "zsh-completions") }}
# install compilation utils
{{ install_packages("make", "gcc", "gcc-c++") }}
{{ install_pakages("make", "gcc", "gcc-c++") }}
CMD ["zsh"]

View File

@ -1 +0,0 @@
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(["p10"], "libssl1.1")}}',
'{{if_branches(["p11"], "libssl3")}}',
'{{if_branches(["p9", "p10"], "libssl1.1")}}',
'{{if_branches(["sisyphus"], "libssl1.1")}}',
'{{if_branches(["sisyphus"], "libssl3")}}',
"tzdata",
"zlib",

View File

@ -2,14 +2,9 @@ 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_packages("python3", "glibc-utils", "apt-repo") }}
{{ install_pakages("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 image is used to build tarballs for distroless images.
This images is using to build tarball for distroless images.

View File

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

View File

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

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("etcd") }}
VOLUME /data

View File

@ -1 +0,0 @@
etcdctl version

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("gitea", "openssh-server", "gosu") }}
ENV USER gitea
ENV HOME /var/lib/gitea

View File

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

View File

@ -1,11 +0,0 @@
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") }}

View File

@ -1 +0,0 @@
go version

View File

@ -1,22 +0,0 @@
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

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

View File

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

View File

@ -1,19 +0,0 @@
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"]

View File

@ -1,6 +0,0 @@
# 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
```

View File

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

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("nginx", "apache2-html", "tzdata") }}
RUN cd /etc/nginx/sites-enabled.d && ln -s ../sites-available.d/default.conf .

View File

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

View File

@ -2,16 +2,10 @@ 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_packages(
{{ install_pakages(
"node",
"npm",
"yarn"

View File

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

View File

@ -1,14 +0,0 @@
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"
) }}

View File

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

View File

@ -1,14 +0,0 @@
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",
) }}

View File

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

View File

@ -1,20 +0,0 @@
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

@ -1,16 +0,0 @@
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`

View File

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

View File

@ -1,20 +0,0 @@
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

@ -1,11 +0,0 @@
# 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

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

View File

@ -1,19 +0,0 @@
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

@ -1,11 +0,0 @@
# 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

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

View File

@ -2,17 +2,10 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("prometheus") }}
WORKDIR /var/lib/prometheus
USER prometheus
EXPOSE 9090
VOLUME [ "/var/lib/prometheus" ]
ENTRYPOINT [ "/usr/bin/prometheus" ]
CMD [ "--config.file=/etc/prometheus/prometheus.yml" ]
ENTRYPOINT [ "/usr/bin/prometheus", "--config.file=/etc/prometheus/prometheus.yml"]

View File

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

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ organization }}/base:{{ branch }}
MAINTAINER alt-cloud
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(
{{ install_pakages(
"python3-module-pip",
"python3-module-setuptools",
"python3-dev",

View File

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

View File

@ -1,17 +0,0 @@
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"]

View File

@ -1,13 +0,0 @@
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>`

View File

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

View File

@ -1,19 +0,0 @@
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

@ -1,18 +0,0 @@
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`

View File

@ -1 +0,0 @@
rabbitmqctl version

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("docker-registry") }}
RUN ln -sf /usr/bin/docker-registry /bin/registry

View File

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

View File

@ -2,12 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("irb") }}
CMD ["irb"]

View File

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

View File

@ -2,15 +2,9 @@ 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_packages("systemd-sysvinit") }}
{{ install_pakages("systemd-sysvinit") }}
RUN ( \
cd /lib/systemd/system/sysinit.target.wants/; \

View File

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

View File

@ -1,13 +0,0 @@
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" ]

View File

@ -1,10 +0,0 @@
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`

View File

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

View File

@ -2,12 +2,6 @@ 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 \

View File

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

View File

@ -1,19 +0,0 @@
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"]

View File

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

View File

@ -1,17 +0,0 @@
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

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

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger

View File

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

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger

View File

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

View File

@ -1,17 +0,0 @@
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

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

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("cert-manager") }}
RUN groupadd -r -g 1000 cert-manger && useradd --no-log-init -r -u 1000 -g cert-manger cert-manger

View File

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

View File

@ -2,14 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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"
ARG PKG_VERSION
{{ install_packages("coredns${PKG_VERSION}") }}
{{ install_pakages("coredns") }}
ENTRYPOINT ["/usr/bin/coredns"]

View File

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

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("etcd") }}
VOLUME /data

View File

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

View File

@ -2,12 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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") }}
{{ install_pakages("cni-plugin-flannel") }}
RUN cp /usr/libexec/cni/flannel /flannel

View File

@ -2,13 +2,7 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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(
{{ install_pakages(
"iproute2",
"net-tools",
"ca-certificates",

View File

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

View File

@ -0,0 +1,87 @@
# Copyright 2015 The Kubernetes Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM {{ registry }}{{ alt_image }}:{{ branch }}
{{ install_pakages("nginx", "ingress-nginx", "ingress-nginx-data", "diffutils", "libcap-utils") }}
RUN mv /etc/nginx/nginx.conf.sample /etc/nginx/nginx.conf
ARG VERSION=v1.8.1
ARG COMMIT_SHA=1b13845fd
ARG BUILD_ID=UNSET
LABEL org.opencontainers.image.title="NGINX Ingress Controller for Kubernetes"
LABEL org.opencontainers.image.documentation="https://kubernetes.github.io/ingress-nginx/"
LABEL org.opencontainers.image.source="https://github.com/kubernetes/ingress-nginx"
LABEL org.opencontainers.image.vendor="The Kubernetes Authors"
LABEL org.opencontainers.image.licenses="Apache-2.0"
LABEL org.opencontainers.image.version="${VERSION}"
LABEL org.opencontainers.image.revision="${COMMIT_SHA}"
LABEL build_id="${BUILD_ID}"
WORKDIR /etc/nginx
RUN /usr/sbin/groupadd -r -f www-data 2>/dev/null
RUN /usr/sbin/useradd -g www-data -c 'www-data' -d /var/www -s '/sbin/nologin' -G www-data -r www-data 2>/dev/null
RUN chown www-data:www-data -R /etc/nginx
RUN mv /usr/bin/dbg /dbg \
&& chown www-data:www-data /dbg
RUN mv /usr/bin/nginx-ingress-controller /nginx-ingress-controller \
&& chown www-data:www-data /nginx-ingress-controller
RUN mv /usr/bin/wait-shutdown /wait-shutdown \
&& chown www-data:www-data /wait-shutdown
# Fix permission during the build to avoid issues at runtime
# with volumes (custom templates)
RUN bash -xeu -c ' \
writeDirs=( \
/etc/ingress-controller \
/etc/ingress-controller/ssl \
/etc/ingress-controller/auth \
/var/log \
/var/log/nginx \
/tmp/nginx \
); \
for dir in "${writeDirs[@]}"; do \
mkdir -p ${dir}; \
chown -R www-data:www-data ${dir}; \
done' \
# LD_LIBRARY_PATH does not work so below is needed for opentelemetry/other modules
# Put libs of newer modules under `/modules_mount/<other>/lib` and add that path below
# Could get complicated arch specific paths become a need
&& echo "/lib:/usr/lib:/usr/local/lib:/modules_mount/etc/nginx/modules/otel" > /etc/ld-musl-x86_64.path
RUN setcap cap_net_bind_service=+ep /nginx-ingress-controller \
&& setcap -v cap_net_bind_service=+ep /nginx-ingress-controller \
&& setcap cap_net_bind_service=+ep /usr/sbin/nginx \
&& setcap -v cap_net_bind_service=+ep /usr/sbin/nginx \
#&& setcap cap_net_bind_service=+ep /usr/bin/dumb-init \
#&& setcap -v cap_net_bind_service=+ep /usr/bin/dumb-init \
#&& apk del libcap \
&& ln -sf /usr/sbin/nginx /usr/bin/nginx
USER www-data
# Create symlinks to redirect nginx logs to stdout and stderr docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log
#ENTRYPOINT ["/usr/bin/dumb-init", "--"]
CMD ["/nginx-ingress-controller"]

View File

@ -2,14 +2,6 @@ FROM {{ registry }}{{ alt_image }}:{{ branch }}
MAINTAINER alt-cloud
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"
ARG PKG_VERSION
{{ install_packages("kubernetes${PKG_VERSION}-master") }}
{{ install_pakages("kubernetes-master") }}
ENTRYPOINT ["/usr/bin/kube-apiserver"]

View File

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

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