Compare commits
	
		
			74 Commits
		
	
	
		
			new_struct
			...
			modified-p
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ed01a19d17 | |||
| 
						 | 
					6e6d876b83 | ||
| 
						 | 
					ff20da92a8 | ||
| 
						 | 
					78daf7d9bb | ||
| 
						 | 
					cb5f3ec98f | ||
| 
						 | 
					3cb1114358 | ||
| faaa41da4d | |||
| ea8aa8f897 | |||
| 
						 | 
					05cf05c29d | ||
| fca809825f | |||
| 
						 | 
					48c571ed65 | ||
| 
						 | 
					50e125d59d | ||
| 
						 | 
					4da3ba20e1 | ||
| abc15fee40 | |||
| e575a1f23c | |||
| 
						 | 
					a1571acc55 | ||
| 
						 | 
					34bdff6755 | ||
| 
						 | 
					a34788f701 | ||
| 
						 | 
					10eee3896f | ||
| 
						 | 
					c947762e9e | ||
| 
						 | 
					f772e861ef | ||
| 3b99b6eed2 | |||
| 4ea046dcf8 | |||
| 7551928508 | |||
| dbe4a3c590 | |||
| 7e8573d319 | |||
| 78b55a0422 | |||
| 4e076b90fb | |||
| 5108c6c04c | |||
| b046b4ec48 | |||
| 
						 | 
					6cd944822f | ||
| 
						 | 
					61dea7bebf | ||
| 
						 | 
					99a96cc7b6 | ||
| 
						 | 
					3772d01634 | ||
| 
						 | 
					1b5a3dd153 | ||
| 
						 | 
					8f862fcfc3 | ||
| 
						 | 
					4b23b69665 | ||
| 
						 | 
					3c611ed452 | ||
| 
						 | 
					3dc76a8533 | ||
| 
						 | 
					9a57a5ccff | ||
| 
						 | 
					84f06f5ecb | ||
| d095e0832e | |||
| 
						 | 
					ccea111eff | ||
| 
						 | 
					7fea91a372 | ||
| 
						 | 
					4f1a12d561 | ||
| 
						 | 
					1e018cfc07 | ||
| 
						 | 
					19cc3e9200 | ||
| 
						 | 
					0e21a9248a | ||
| 
						 | 
					8d9a890573 | ||
| 
						 | 
					b0178e587a | ||
| 
						 | 
					f7e8ff3059 | ||
| 085e251c81 | |||
| 
						 | 
					704f9912e1 | ||
| 
						 | 
					30c0e3df57 | ||
| 
						 | 
					430219d6d0 | ||
| 
						 | 
					abddecf404 | ||
| 
						 | 
					78259d754d | ||
| 
						 | 
					cdb4d9d2f8 | ||
| 
						 | 
					8da835e2b6 | ||
| 
						 | 
					3f4409b2c4 | ||
| 
						 | 
					4a434a443b | ||
| 
						 | 
					79f5a1def4 | ||
| 
						 | 
					9145f4635d | ||
| 
						 | 
					2314b3aba8 | ||
| 
						 | 
					63fc9e2440 | ||
| 
						 | 
					8e68d73e10 | ||
| eb04d81fa7 | |||
| 
						 | 
					4b4609ea9b | ||
| 
						 | 
					733f065152 | ||
| 
						 | 
					0e8a71d1cf | ||
| 
						 | 
					359481a018 | ||
| 
						 | 
					8466221285 | ||
| ab4b19f839 | |||
| 3f432b2a9a | 
@@ -6,76 +6,66 @@
 | 
			
		||||
#$4 - ${{ needs.build-process.outputs.repo }}
 | 
			
		||||
#$5 - ${{ gitea.workspace }}
 | 
			
		||||
 | 
			
		||||
BR=${1:-"p10"}
 | 
			
		||||
ORG=${2:-"base"}
 | 
			
		||||
URL=${3:-"gitea.basealt.ru"}
 | 
			
		||||
REPO=${4:-"alt"}
 | 
			
		||||
WS=${5:-"image-forge"}
 | 
			
		||||
branch=${1:-"sisyphus"}
 | 
			
		||||
org=${2:-"alt"}
 | 
			
		||||
url=${3:-"gitea.basealt.ru"}
 | 
			
		||||
repo=${4:-"alt"}
 | 
			
		||||
wosp=${5:-"."}
 | 
			
		||||
 | 
			
		||||
errors=''
 | 
			
		||||
haserr=false
 | 
			
		||||
for IM in $(ls $WS/org/$ORG/ | xargs)
 | 
			
		||||
for IM in $(ls $wosp/org/$org/ | xargs)
 | 
			
		||||
do 
 | 
			
		||||
  echo "image=$IM"
 | 
			
		||||
  imgpath="$REPO/$BR/$IM:$BR"
 | 
			
		||||
  command=''
 | 
			
		||||
  testpath="$WS/org/$ORG/$IM/test.yaml"
 | 
			
		||||
  if test -f $testpath
 | 
			
		||||
  then
 | 
			
		||||
	entrypoint=''
 | 
			
		||||
	testep=$(cat $testpath | yq '.entrypoint' -r 2> /dev/null)
 | 
			
		||||
	if [[ $testep != '' ]]; then entrypoint="--entrypoint=\"$testep\""; fi 
 | 
			
		||||
  if test -f $wosp/org/$org/$IM/test
 | 
			
		||||
  then 
 | 
			
		||||
    test=$(cat $wosp/org/$org/$IM/test)
 | 
			
		||||
  else test=''
 | 
			
		||||
  fi 
 | 
			
		||||
 | 
			
		||||
	testcom=$(cat $testpath | yq '.command' -r 2> /dev/null)
 | 
			
		||||
	if [[ $testcom != '' ]]
 | 
			
		||||
	then command="podman run --rm $entrypoint $URL/$imgpath -c \"$testcom\""
 | 
			
		||||
	else echo "test command is not found"
 | 
			
		||||
	fi	
 | 
			
		||||
  else echo "test file is not found"
 | 
			
		||||
  echo "test script=$test"
 | 
			
		||||
  imgpath="$repo/$branch/$IM:latest"
 | 
			
		||||
 | 
			
		||||
  entrypoint='/bin/sh'
 | 
			
		||||
 | 
			
		||||
  command="echo empty_command"
 | 
			
		||||
  if [ -n "$test" ]; then
 | 
			
		||||
    command="podman run --rm --entrypoint=\"$entrypoint\" $url/$imgpath -c \"$test\""
 | 
			
		||||
  else
 | 
			
		||||
    if [[ "$IM" == distroless-toybox ]]; then
 | 
			
		||||
      command="podman run --rm $url/$imgpath toysh -c true"
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$IM" = distroless-true ]; then
 | 
			
		||||
      command="podman run --rm $url/$imgpath \"true\""
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$IM" = distroless-gotop ]; then 
 | 
			
		||||
      command="podman run --rm $url/$imgpath \"--version\""
 | 
			
		||||
    fi 
 | 
			
		||||
    if [ "$IM" = flannel-cni-plugin ]; then
 | 
			
		||||
      command="podman run --rm $url/$imgpath \"/flannel\""
 | 
			
		||||
    fi
 | 
			
		||||
    if [ "$IM" == pause ]; then 
 | 
			
		||||
      command="podman run --rm $url/$imgpath \"/pause\" \"-v\""
 | 
			
		||||
    fi 
 | 
			
		||||
  fi
 | 
			
		||||
  echo "result test command: $command"
 | 
			
		||||
  echo $command
 | 
			
		||||
  eval $command 2>$IM.log || haserr=true
 | 
			
		||||
 | 
			
		||||
  if [ "$haserr" = false ]
 | 
			
		||||
  then
 | 
			
		||||
    echo "start change tag for $IM"
 | 
			
		||||
    if [[ $ORG != 'base' ]]
 | 
			
		||||
    then
 | 
			
		||||
	package=$(podman images --filter reference=$URL/$imgpath --format='{{ json .Labels }}' | jq '."org.opencontainers.image.title"' -r 2> /dev/null)
 | 
			
		||||
    	if [[ $package != '' ]]
 | 
			
		||||
    	then 
 | 
			
		||||
		tag=$(podman run --rm --entrypoint="/bin/sh" $URL/$imgpath -c "rpm -qa --qf \"%{VERSION}\n\" $package" 2> /dev/null)
 | 
			
		||||
	else
 | 
			
		||||
		echo "not found package name in images labels"
 | 
			
		||||
	fi 
 | 
			
		||||
    else
 | 
			
		||||
	then tag=$(date +"%Y%m%d")
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [[ $tag != '' ]]
 | 
			
		||||
    then 
 | 
			
		||||
	    skopeo copy -a docker://$URL/$imgpath:$BR  docker://$URL/$imgpath:$tag
 | 
			
		||||
	    scopeo delete docker://$URL/$imgpath:$BR
 | 
			
		||||
	    echo "tag is updated"
 | 
			
		||||
    else echo "new tag is empty and is not sent to repository"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
  else
 | 
			
		||||
    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
 | 
			
		||||
    
 | 
			
		||||
  echo "podman rmi --all"
 | 
			
		||||
  podman rmi --all
 | 
			
		||||
 | 
			
		||||
  if [ "$haserr" ]
 | 
			
		||||
  then 
 | 
			
		||||
    if [[ -n $(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 != '' ]]
 | 
			
		||||
if [ -n "$errors" ]
 | 
			
		||||
  then haserr=true 
 | 
			
		||||
fi
 | 
			
		||||
echo "ERR=$haserr" > haserr.log
 | 
			
		||||
 
 | 
			
		||||
@@ -3,13 +3,10 @@ on:
 | 
			
		||||
  push:
 | 
			
		||||
    tags:
 | 
			
		||||
      - '*_*'
 | 
			
		||||
    tags-ignore:
 | 
			
		||||
      - '*_k8s'
 | 
			
		||||
      - 'sisyphus_*'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build-process:
 | 
			
		||||
    runs-on: alt-p10
 | 
			
		||||
    runs-on: alt-sisyphus
 | 
			
		||||
    outputs:
 | 
			
		||||
      branch: ${{ env.BRANCH }}
 | 
			
		||||
      org: ${{ env.ORG }}
 | 
			
		||||
@@ -39,34 +36,36 @@ jobs:
 | 
			
		||||
        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          
 | 
			
		||||
          echo "apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl"
 | 
			
		||||
          apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl
 | 
			
		||||
          echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch"
 | 
			
		||||
          apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch
 | 
			
		||||
      - name: Check out current repo
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
      - name: Parse target branch and tag from events context, save to env                                
 | 
			
		||||
      - name: Parse target branch and tag from events context, save to env
 | 
			
		||||
        env:
 | 
			
		||||
          EV: ${{ toJson(gitea.event) }}                                         
 | 
			
		||||
          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" >> ${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 }}          
 | 
			
		||||
          podman login --username $P_USER --password $P_PASS ${{ env.URL }}
 | 
			
		||||
        env:
 | 
			
		||||
          P_USER: ${{ secrets.PODMAN_USER }}
 | 
			
		||||
          P_PASS: ${{ secrets.PODMAN_PASS }}
 | 
			
		||||
      - name: Run standart building script
 | 
			
		||||
      - name: Run building script
 | 
			
		||||
        id: build-script
 | 
			
		||||
        run: |
 | 
			
		||||
          build_args="-b $BR -o $ORG --skip-images base/distroless-devel --overwrite-organization $BR --registry $URL/$BR"          
 | 
			
		||||
          echo "build.py $build_args"
 | 
			
		||||
          ${{ gitea.workspace }}/build.py $build_args
 | 
			
		||||
          build_args="-b $BR -o $ORG --skip-images alt/distroless-devel"
 | 
			
		||||
          if [[ "$BR" == "sisyphus" ]]; then arches="--arches amd64 386 arm64 loong64"; else arches="--arches amd64 386 arm64"; fi
 | 
			
		||||
          if [[ "$ORG" == "k8s" ]]; then build_args="$build_args --overwrite-organization $ORG-$BR --package-versions {\"k8s/kube-apiserver\":\"1.31\",\"k8s/kube-scheduler\":\"1.31\",\"k8s/kube-controller-manager\":\"1.31\",\"k8s/kube-proxy\":\"1.31\",\"k8s/coredns\":\"1.11.3\",\"k8s/kubelet\":\"1.31\"}"; fi
 | 
			
		||||
          echo "build.py $build_args $arches"
 | 
			
		||||
          ${{ gitea.workspace }}/build.py $build_args $arches
 | 
			
		||||
        env:
 | 
			
		||||
          ORG: ${{ env.ORG }}
 | 
			
		||||
          BR: ${{ env.BRANCH }}
 | 
			
		||||
@@ -87,7 +86,7 @@ jobs:
 | 
			
		||||
        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"                    
 | 
			
		||||
          echo "tag $tagname is deleted"
 | 
			
		||||
        env:
 | 
			
		||||
          T: ${{ secrets.TOKEN }}
 | 
			
		||||
          BR: ${{ env.BRANCH }}
 | 
			
		||||
@@ -96,25 +95,18 @@ jobs:
 | 
			
		||||
          EV: ${{ toJson(gitea.event) }}
 | 
			
		||||
  test-process:
 | 
			
		||||
    needs: build-process
 | 
			
		||||
    if: ${{ needs.build-process.outputs.buildres == 'success' }}
 | 
			
		||||
    runs-on: alt-p10
 | 
			
		||||
    if: ${{ needs.build-process.outputs.buildres == 'success' && needs.build-process.outputs.org != 'k8s' }}
 | 
			
		||||
    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 skopeo jq yq curl"
 | 
			
		||||
          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: Login podman gitea
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "podman login ${{ env.URL }}"
 | 
			
		||||
          podman login --username $P_USER --password $P_PASS ${{ needs.build-process.outputs.url }}          
 | 
			
		||||
        env:
 | 
			
		||||
          P_USER: ${{ secrets.PODMAN_USER }}
 | 
			
		||||
          P_PASS: ${{ secrets.PODMAN_PASS }}
 | 
			
		||||
      - name: Test images and update tags
 | 
			
		||||
      - name: Test
 | 
			
		||||
        id: test-script
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        run: |
 | 
			
		||||
@@ -1,49 +1,48 @@
 | 
			
		||||
name: Full building alt images
 | 
			
		||||
name: Building alt images
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    tags:
 | 
			
		||||
      - 'sisyphus_*'
 | 
			
		||||
      - '*_*/*_*'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build-process:
 | 
			
		||||
    runs-on: alt-sisyphus
 | 
			
		||||
    outputs:
 | 
			
		||||
      branch: ${{ env.BRANCH }}
 | 
			
		||||
      org: ${{ env.ORG }}
 | 
			
		||||
      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 $repourl
 | 
			
		||||
          echo "URL=$repourl"
 | 
			
		||||
          reponame=$(echo $GR | cut -d '/' -f 1)
 | 
			
		||||
          echo "REPO=$reponame" >> ${GITHUB_ENV}
 | 
			
		||||
          echo $reponame
 | 
			
		||||
          echo "REPO=$reponame" >> ${GITHUB_ENV} 
 | 
			
		||||
          echo "REPO=$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          
 | 
			
		||||
          echo "apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl"
 | 
			
		||||
          apt-get install -y python3-module-tomli python3-module-jinja2 python3-module-yaml python3-module-requests podman buildah jq curl
 | 
			
		||||
          echo "apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch"
 | 
			
		||||
          apt-get install -y qemu-user-static-binfmt-aarch64 qemu-user-static-binfmt-arm qemu-user-static-binfmt-ppc qemu-user-static-binfmt-riscv qemu-user-static-binfmt-loongarch
 | 
			
		||||
      - 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 }}"
 | 
			
		||||
@@ -51,34 +50,62 @@ jobs:
 | 
			
		||||
        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"
 | 
			
		||||
          org=$(echo "$localimage" | cut -d '/' -f 1)
 | 
			
		||||
          echo "ORG=$org" >> ${GITHUB_ENV}
 | 
			
		||||
          echo "ORG=$org"
 | 
			
		||||
          ver=$(echo $EV | jq '.ref' -r | sed 's/refs\/tags\///g' | cut -d '_' -f 3)
 | 
			
		||||
          echo "VER=$ver" >> ${GITHUB_ENV}
 | 
			
		||||
          echo "VER=$ver"
 | 
			
		||||
      - 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: |
 | 
			
		||||
          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
 | 
			
		||||
          if [[ "$IM" == *"k8s"* ]]; then k8sarg="--overwrite-organization $ORG-$BR --package-versions {\"$IM\":\"$VER\"}"; else k8sarg=""; fi
 | 
			
		||||
          if [[ "$BR" == "sisyphus" ]]; then arches="--arches amd64 386 arm64 loong64"; else arches="--arches amd64 386 arm64"; fi
 | 
			
		||||
          echo "build.py -i $IM -b $BR $arches $k8sarg"
 | 
			
		||||
          ${{ gitea.workspace }}/build.py -i $IM -b $BR $arches $k8sarg 
 | 
			
		||||
        env:
 | 
			
		||||
          ORG: ${{ env.ORG }}
 | 
			
		||||
          IM: ${{ env.IMAGE }}
 | 
			
		||||
          VER: ${{ env.VER }}
 | 
			
		||||
          BR: ${{ env.BRANCH }}
 | 
			
		||||
          ORG: ${{ env.ORG }}
 | 
			
		||||
        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."
 | 
			
		||||
          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"
 | 
			
		||||
          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"                    
 | 
			
		||||
          echo "tag $tagname is deleted"
 | 
			
		||||
        env:
 | 
			
		||||
          T: ${{ secrets.TOKEN }}
 | 
			
		||||
          BR: ${{ env.BRANCH }}
 | 
			
		||||
@@ -91,36 +118,47 @@ jobs:
 | 
			
		||||
    runs-on: alt-sisyphus
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Update apt
 | 
			
		||||
        uses: actions/init-alt-env@v1
 | 
			
		||||
        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 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
 | 
			
		||||
          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: |
 | 
			
		||||
          $WS/.gitea/workflows/testscript $BR $ORG $URL $REPO $WS
 | 
			
		||||
          cat haserr.log >> ${GITHUB_ENV}
 | 
			
		||||
          echo "test process finished"
 | 
			
		||||
          if [[ "$IM" == *"k8s"* ]]; then echo "skip tests for k8s images"; else podman run --rm --entrypoint="/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 }}
 | 
			
		||||
          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' }}
 | 
			
		||||
        if: ${{ steps.test-script.outcome == 'failure' || steps.special-test.outcome == 'failure' }}
 | 
			
		||||
        run: |
 | 
			
		||||
          issueid=1
 | 
			
		||||
          errors=$(cat errors.log)
 | 
			
		||||
          body="Testing images finish with some errors. $errors"
 | 
			
		||||
          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"
 | 
			
		||||
          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 }}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										61
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								README.md
									
									
									
									
									
								
							@@ -26,9 +26,70 @@ the organization `<ORGANIZATION>`, run:
 | 
			
		||||
```
 | 
			
		||||
If you push to the users repository, then organiztion is your username.
 | 
			
		||||
 | 
			
		||||
## info.yaml format
 | 
			
		||||
 | 
			
		||||
- `is_versioned`: **bool** (REQUIRED)
 | 
			
		||||
 | 
			
		||||
  Whether to use package version as a tag for this image
 | 
			
		||||
 | 
			
		||||
- `source_packages`: **list of strings** (REQUIRED)
 | 
			
		||||
 | 
			
		||||
  List of source packages (src.rpm) this image depends on.
 | 
			
		||||
  If contains jinja2 template syntax, `--package-version`
 | 
			
		||||
  CLI option must be specified.
 | 
			
		||||
 | 
			
		||||
- `version_template`: **string** (OPTIONAL)
 | 
			
		||||
 | 
			
		||||
  template to apply when construction the tag,
 | 
			
		||||
  `version` string variable is available in the template
 | 
			
		||||
 | 
			
		||||
### examples
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### org/k8s/flannel-cni-plugin
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: v{{ version.rsplit('.', 1) | first  }}-flannel{{ version.rsplit('.', 1) | last }}
 | 
			
		||||
source_packages:
 | 
			
		||||
  - cni-plugin-flannel
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
./build.py -i k8s/flannel-cni-plugin
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### org/k8s/kube-apiserver
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: v{{ version }}
 | 
			
		||||
source_packages:
 | 
			
		||||
  - kubernetes{{ version }}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
./build.py -b sisyphus -i k8s/kube-apiserver --package-version '{"k8s/kube-apiserver": "1.31"}'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### org/k8s/pause
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
is_versioned: true
 | 
			
		||||
source_packages:
 | 
			
		||||
  - kubernetes-pause
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
./build.py -i k8s/pause
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Dependencies
 | 
			
		||||
On x86_64 machine using p10 branch you need:
 | 
			
		||||
- `python3-module-tomli`
 | 
			
		||||
- `python3-module-jinja2`
 | 
			
		||||
- `python3-module-yaml`
 | 
			
		||||
- `python3-module-requests`
 | 
			
		||||
- `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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										169
									
								
								build.py
									
									
									
									
									
								
							
							
						
						
									
										169
									
								
								build.py
									
									
									
									
									
								
							@@ -6,25 +6,62 @@ import json
 | 
			
		||||
import re
 | 
			
		||||
import subprocess
 | 
			
		||||
import textwrap
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
from dataclasses import dataclass
 | 
			
		||||
from graphlib import TopologicalSorter
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
import tomli
 | 
			
		||||
import yaml
 | 
			
		||||
from jinja2 import Template
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ORG_DIR = Path("org")
 | 
			
		||||
 | 
			
		||||
PKG_VERSIONS: dict | None = None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@dataclass
 | 
			
		||||
class Image:
 | 
			
		||||
    def __init__(self, canonical_name):
 | 
			
		||||
    canonical_name: str
 | 
			
		||||
    is_versioned: bool | None
 | 
			
		||||
    verion_template: str | None
 | 
			
		||||
    source_packages: list[str] | None
 | 
			
		||||
 | 
			
		||||
    def __init__(self, canonical_name: str):
 | 
			
		||||
        self.canonical_name = canonical_name
 | 
			
		||||
        self.path = ORG_DIR / canonical_name
 | 
			
		||||
        self.base_name = re.sub("^[^/]+/", "", canonical_name)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return (f'Image(canonical_name="{self.canonical_name}", '
 | 
			
		||||
                f'path="{self.path}", base_name="{self.base_name}")')
 | 
			
		||||
        info_file = self.path / "info.yaml"
 | 
			
		||||
        if not info_file.exists():
 | 
			
		||||
            self.is_versioned = None
 | 
			
		||||
            self.source_packages = None
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        info: dict = yaml.safe_load(info_file.read_text())
 | 
			
		||||
 | 
			
		||||
        if "is_versioned" not in info:
 | 
			
		||||
            raise RuntimeError(
 | 
			
		||||
                f"info.yaml for {self.canonical_name} doesn't contain 'is_versioned' key"
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        if "source_packages" not in info:
 | 
			
		||||
            raise RuntimeError(
 | 
			
		||||
                f"info.yaml for {self.canonical_name} doesn't contain 'source_packages' key"
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        self.is_versioned = info["is_versioned"]
 | 
			
		||||
        self.source_packages = info["source_packages"]
 | 
			
		||||
 | 
			
		||||
        if self.is_versioned and not self.source_packages:
 | 
			
		||||
            raise RuntimeError(
 | 
			
		||||
                f"source_packages for {self.canonical_name} doesn't contain any values"
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        self.version_template = None
 | 
			
		||||
        if "version_template" in info:
 | 
			
		||||
            self.version_template = info["version_template"]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Tasks:
 | 
			
		||||
@@ -49,22 +86,95 @@ class Tasks:
 | 
			
		||||
                ]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def api_get_source_package_version(branch: str, package_name: str) -> str:
 | 
			
		||||
    api_url = "https://rdb.altlinux.org/api/site/package_versions_from_tasks"
 | 
			
		||||
    params = {"branch": branch, "name": package_name}
 | 
			
		||||
    response = requests.get(api_url, params)
 | 
			
		||||
    if response.status_code != 200:
 | 
			
		||||
        print(response)
 | 
			
		||||
        api_url = "https://rdb.altlinux.org/api/site/package_versions"
 | 
			
		||||
        params = {"arch": "x86_64", "package_type": "source", "name": package_name}
 | 
			
		||||
        response = requests.get(api_url, params)
 | 
			
		||||
        if response.status_code != 200:
 | 
			
		||||
            print(response)
 | 
			
		||||
            raise RuntimeError(
 | 
			
		||||
                    f"failed to retrieve source package version: source package {package_name!r}, branch {branch!r} "
 | 
			
		||||
            )
 | 
			
		||||
        result = response.json()
 | 
			
		||||
        for v in result["versions"]:
 | 
			
		||||
            if v["branch"] == branch:
 | 
			
		||||
                return v["version"]
 | 
			
		||||
 | 
			
		||||
        raise RuntimeError(
 | 
			
		||||
            f"failed to retrieve source package version: source package {package_name!r}, branch {branch!r} "
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    result = response.json()
 | 
			
		||||
 | 
			
		||||
    return result["versions"][0]["version"]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Tags:
 | 
			
		||||
    def __init__(self, tags_file, latest):
 | 
			
		||||
    def __init__(self, tags_file: str | None, latest: str):
 | 
			
		||||
        if tags_file is None:
 | 
			
		||||
            self._tags = None
 | 
			
		||||
        else:
 | 
			
		||||
            tags_file = Path(tags_file)
 | 
			
		||||
            self._tags = tomli.loads(tags_file.read_text())
 | 
			
		||||
            self._tags = tomli.loads(Path(tags_file).read_text())
 | 
			
		||||
        self._latest = latest
 | 
			
		||||
 | 
			
		||||
    def tags(self, branch, image: Image):
 | 
			
		||||
    def tags(self, branch: str, image: Image):
 | 
			
		||||
        if self._tags is None:
 | 
			
		||||
            tags = [branch]
 | 
			
		||||
            if image.is_versioned is None:
 | 
			
		||||
                tags = [branch]
 | 
			
		||||
                if branch == self._latest:
 | 
			
		||||
                    tags.append("latest")
 | 
			
		||||
 | 
			
		||||
            elif image.is_versioned and image.source_packages:
 | 
			
		||||
                package_name = image.source_packages[0]
 | 
			
		||||
 | 
			
		||||
                if re.search("{%.*%}", package_name):
 | 
			
		||||
                    package_name = Template(package_name).render(branch=branch).strip()
 | 
			
		||||
                    print(f"{package_name=}")
 | 
			
		||||
 | 
			
		||||
                if re.search("{{.*}}", package_name):
 | 
			
		||||
                    if PKG_VERSIONS is None:
 | 
			
		||||
                        raise RuntimeError(
 | 
			
		||||
                            f"--package-versions option is not specified, required for {image.canonical_name!r}"
 | 
			
		||||
                        )
 | 
			
		||||
 | 
			
		||||
                    if image.canonical_name not in PKG_VERSIONS:
 | 
			
		||||
                        raise RuntimeError(
 | 
			
		||||
                            f"--package-versions option does not contain version for image {image.canonical_name!r}"
 | 
			
		||||
                        )
 | 
			
		||||
 | 
			
		||||
                    if not PKG_VERSIONS[image.canonical_name]:
 | 
			
		||||
                        raise RuntimeError(
 | 
			
		||||
                            f"invalid version for image {image.canonical_name!r}: {PKG_VERSIONS[image.canonical_name]!r}"
 | 
			
		||||
                        )
 | 
			
		||||
 | 
			
		||||
                    package_name = Template(package_name).render(
 | 
			
		||||
                        version=PKG_VERSIONS[image.canonical_name]
 | 
			
		||||
                    )
 | 
			
		||||
                version = api_get_source_package_version(branch, package_name)
 | 
			
		||||
 | 
			
		||||
                if image.version_template is not None:
 | 
			
		||||
                    version = (
 | 
			
		||||
                        Template(image.version_template).render(version=version).strip()
 | 
			
		||||
                    )
 | 
			
		||||
 | 
			
		||||
                tags = [version]
 | 
			
		||||
                tags.append("latest")
 | 
			
		||||
            else:
 | 
			
		||||
                version = datetime.now().strftime('%Y%m%d')
 | 
			
		||||
                if image.version_template is not None:
 | 
			
		||||
                    version = (
 | 
			
		||||
                        Template(image.version_template).render(version=version).strip()
 | 
			
		||||
                    )
 | 
			
		||||
                tags = [version]
 | 
			
		||||
                tags.append("latest")
 | 
			
		||||
        else:
 | 
			
		||||
            tags = self._tags[image.canonical_name][branch].copy()
 | 
			
		||||
        if branch == self._latest:
 | 
			
		||||
            tags.append("latest")
 | 
			
		||||
 | 
			
		||||
        return tags
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -107,6 +217,10 @@ class Distroless:
 | 
			
		||||
        elif value := dd.get("workingdir"):
 | 
			
		||||
            self.config_options.append(f"--workingdir={value}")
 | 
			
		||||
 | 
			
		||||
        if labels := dd.get("label"):
 | 
			
		||||
            for k, v in labels.items():
 | 
			
		||||
                self.config_options.append(f"--label={k}={v}")
 | 
			
		||||
 | 
			
		||||
    def render_arch_branch(self, arch, branch):
 | 
			
		||||
        def if_arches(arches, value, default=""):
 | 
			
		||||
            if arch in arches or not arches:
 | 
			
		||||
@@ -153,9 +267,10 @@ class DockerBuilder:
 | 
			
		||||
    def make_image_re(self):
 | 
			
		||||
        registry = r"(?P<registry>[\w.:]+)"
 | 
			
		||||
        organization = r"(?P<organization>\w+)"
 | 
			
		||||
        branch = r"(?P<branch>\w+)"
 | 
			
		||||
        name = r"(?P<name>[-.\w]+)"
 | 
			
		||||
        tag = r"(?P<tag>[\w.]+)"
 | 
			
		||||
        return rf"(:?{registry}/)?(:?{organization}/)?{name}(:?:{tag})?"
 | 
			
		||||
        return rf"(:?{registry}/)?(:?{organization}/)?(:?{branch}/)?{name}(:?:{tag})?"
 | 
			
		||||
 | 
			
		||||
    def make_dockerfile_from_re(self):
 | 
			
		||||
        image_re = self.make_image_re()
 | 
			
		||||
@@ -183,7 +298,7 @@ class DockerBuilder:
 | 
			
		||||
        if overwrite_organization:
 | 
			
		||||
            self.overwrite_organization = overwrite_organization
 | 
			
		||||
        else:
 | 
			
		||||
            self.overwrite_organization = organization
 | 
			
		||||
            self.overwrite_organization = branch
 | 
			
		||||
        self.latest = latest
 | 
			
		||||
        self.dry_run = dry_run
 | 
			
		||||
        self.images_info = images_info
 | 
			
		||||
@@ -230,7 +345,7 @@ class DockerBuilder:
 | 
			
		||||
    ) -> str:
 | 
			
		||||
        if self.registry:
 | 
			
		||||
            registry = self.registry.rstrip("/") + "/"
 | 
			
		||||
            alt_image = "alt/alt"
 | 
			
		||||
            alt_image = "alt"
 | 
			
		||||
        else:
 | 
			
		||||
            registry = ""
 | 
			
		||||
            alt_image = "alt"
 | 
			
		||||
@@ -304,7 +419,7 @@ class DockerBuilder:
 | 
			
		||||
                    from_image = match.groupdict()
 | 
			
		||||
                    if from_image["name"] != "scratch":
 | 
			
		||||
                        requires.add(
 | 
			
		||||
                            f"{from_image['organization']}/{from_image['name']}"
 | 
			
		||||
                            f"{self.organization}/{from_image['name']}"
 | 
			
		||||
                        )
 | 
			
		||||
        elif distrolessfile.exists():
 | 
			
		||||
            requires.add("alt/distroless-builder")
 | 
			
		||||
@@ -313,7 +428,7 @@ class DockerBuilder:
 | 
			
		||||
            if match := re.match(self.image_re, from_):
 | 
			
		||||
                from_image = match.groupdict()
 | 
			
		||||
                if from_image["name"] != "scratch":
 | 
			
		||||
                    requires.add(f"{from_image['organization']}/{from_image['name']}")
 | 
			
		||||
                    requires.add(f"{self.organization}/{from_image['name']}")
 | 
			
		||||
 | 
			
		||||
        return (canonical_name, requires)
 | 
			
		||||
 | 
			
		||||
@@ -345,7 +460,7 @@ class DockerBuilder:
 | 
			
		||||
    def distroless_build(self, image: Image, arches):
 | 
			
		||||
        def distroless_build_arch(arch, manifest):
 | 
			
		||||
            distroless_builder = self.render_full_tag(
 | 
			
		||||
                Image("alt/distroless-builder"), self.branch
 | 
			
		||||
                Image("alt/distroless-builder"), "latest"
 | 
			
		||||
            )
 | 
			
		||||
            distroless = self.distrolesses[image.canonical_name]
 | 
			
		||||
            distroless.render_arch_branch(arch, self.branch)
 | 
			
		||||
@@ -580,6 +695,12 @@ class DockerBuilder:
 | 
			
		||||
            f"--platform={platforms}",
 | 
			
		||||
            ".",
 | 
			
		||||
        ]
 | 
			
		||||
 | 
			
		||||
        if PKG_VERSIONS is not None and image.canonical_name in PKG_VERSIONS:
 | 
			
		||||
            build_cmd.insert(
 | 
			
		||||
                -1, f"--build-arg=PKG_VERSION={PKG_VERSIONS[image.canonical_name]}"
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        self.run(build_cmd, cwd=image.path)
 | 
			
		||||
 | 
			
		||||
        for tag in tags[1:]:
 | 
			
		||||
@@ -638,8 +759,8 @@ class ImagesInfo:
 | 
			
		||||
 | 
			
		||||
def parse_args():
 | 
			
		||||
    stages = ["build", "remove_dockerfiles", "render_dockerfiles", "push"]
 | 
			
		||||
    arches = ["amd64", "386", "arm64"]
 | 
			
		||||
    branches = ["p10", "sisyphus", "c10f1", "c10f2"]
 | 
			
		||||
    arches = ["amd64", "386", "arm64", "loong64", "riscv64"]
 | 
			
		||||
    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]
 | 
			
		||||
@@ -749,6 +870,11 @@ def parse_args():
 | 
			
		||||
        choices=stages,
 | 
			
		||||
        help="list of stages to skip",
 | 
			
		||||
    )
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "--package-versions",
 | 
			
		||||
        type=json.loads,
 | 
			
		||||
        help="json string where key is image name, value is the package version",
 | 
			
		||||
    )
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
 | 
			
		||||
    args.stages = set(args.stages) - set(args.skip_stages)
 | 
			
		||||
@@ -760,7 +886,10 @@ def parse_args():
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    global PKG_VERSIONS
 | 
			
		||||
 | 
			
		||||
    args = parse_args()
 | 
			
		||||
    PKG_VERSIONS = args.package_versions
 | 
			
		||||
    arches = args.arches
 | 
			
		||||
    images_info = ImagesInfo()
 | 
			
		||||
    tags = Tags(args.tags, args.latest)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,65 +1,11 @@
 | 
			
		||||
["alt/buildpack-deps"]
 | 
			
		||||
skip-branches = [ "p9" ]
 | 
			
		||||
 | 
			
		||||
["alt/distroless-base"]
 | 
			
		||||
skip-branches = [ "p9" ]
 | 
			
		||||
["alt/distroless-toybox"]
 | 
			
		||||
skip-branches = [ "p10" ]
 | 
			
		||||
 | 
			
		||||
["alt/distroless-builder"]
 | 
			
		||||
skip-branches = [ "p9" ]
 | 
			
		||||
["alt/openjdk21"]
 | 
			
		||||
skip-arches = [ "386" ]
 | 
			
		||||
 | 
			
		||||
["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-branches = [ "c10f2", "c10f1", "p10" ]
 | 
			
		||||
							
								
								
									
										17
									
								
								org/alt/ansible/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								org/alt/ansible/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/node:latest
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
							
								
								
									
										8
									
								
								org/alt/ansible/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								org/alt/ansible/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - ansible-core
 | 
			
		||||
  - ansible-vim
 | 
			
		||||
  - ansible-lint
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/ansible/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/ansible/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ansible --version
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM {{ registry }}{{ alt_image }}:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/apache2/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/apache2/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - apache2
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/apache2/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/apache2/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
apachectl -v
 | 
			
		||||
							
								
								
									
										12
									
								
								org/alt/base/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								org/alt/base/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
LABEL org.opencontainers.image.title="base"
 | 
			
		||||
LABEL org.opencontainers.image.description="Base image with localization and timezone packages"
 | 
			
		||||
LABEL org.opencontainers.image.licenses="GPLv2"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="ALT Linux Team"
 | 
			
		||||
 | 
			
		||||
{{ install_packages("glibc-gconv-modules", "glibc-locales", "tzdata") }}
 | 
			
		||||
 | 
			
		||||
CMD ["bash"]
 | 
			
		||||
							
								
								
									
										7
									
								
								org/alt/base/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								org/alt/base/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - glibc
 | 
			
		||||
  - tzdata
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/base/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/base/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
LC_ALL=ru_RU.UTF-8 TZ=/usr/share/zoneinfo/Europe/Moscow date| grep MSK
 | 
			
		||||
@@ -1,8 +1,9 @@
 | 
			
		||||
FROM {{ registry }}{{ alt_image }}:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
LABEL org.opencontainers.image.title="buildpack-deps-curl"
 | 
			
		||||
LABEL org.opencontainers.image.description = "Transfer data environment"
 | 
			
		||||
LABEL org.opencontainers.image.licenses="GPLv2"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="ALT Linux Team"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								org/alt/buildpack-deps-curl/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								org/alt/buildpack-deps-curl/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - ca-certificates
 | 
			
		||||
  - curl
 | 
			
		||||
  - gnupg
 | 
			
		||||
  - wget
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/buildpack-deps-curl/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/buildpack-deps-curl/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
curl --version && gpg --version
 | 
			
		||||
@@ -1,9 +1,10 @@
 | 
			
		||||
FROM {{ registry }}{{ organization }}/buildpack-deps-curl:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/buildpack-deps-curl:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
LABEL org.opencontainers.image.title="buildpack-deps-scm"
 | 
			
		||||
LABEL org.opencontainers.image.licenses="GPLv2"
 | 
			
		||||
LABEL org.opencontainers.image.description = "Software configuration management environment"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="ALT Linux Team"
 | 
			
		||||
 | 
			
		||||
{{ install_packages(
 | 
			
		||||
							
								
								
									
										10
									
								
								org/alt/buildpack-deps-scm/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								org/alt/buildpack-deps-scm/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - git
 | 
			
		||||
  - mercurial
 | 
			
		||||
  - openssh
 | 
			
		||||
  - procps
 | 
			
		||||
  - subversion
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/buildpack-deps-scm/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/buildpack-deps-scm/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
git --version && hg --version
 | 
			
		||||
@@ -1,8 +1,9 @@
 | 
			
		||||
FROM {{ registry }}{{ organization }}/buildpack-deps-scm:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/buildpack-deps-scm:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
LABEL org.opencontainers.image.title="buildpack-deps"
 | 
			
		||||
LABEL org.opencontainers.image.description = "Projects building environment"
 | 
			
		||||
LABEL org.opencontainers.image.licenses="GPLv2"
 | 
			
		||||
LABEL org.opencontainers.image.vendor="ALT Linux Team"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/buildpack-deps/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/buildpack-deps/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - gcc-defaults
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/buildpack-deps/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/buildpack-deps/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
gcc --version && make --version
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM {{ registry }}{{ organization }}/base:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/base:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										17
									
								
								org/alt/devel/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								org/alt/devel/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - gcc-defaults
 | 
			
		||||
  - vim
 | 
			
		||||
  - gdb
 | 
			
		||||
  - git
 | 
			
		||||
  - iproute2
 | 
			
		||||
  - iputils
 | 
			
		||||
  - wget
 | 
			
		||||
  - curl
 | 
			
		||||
  - lsof
 | 
			
		||||
  - ripgrep
 | 
			
		||||
  - zsh
 | 
			
		||||
  - make
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										22
									
								
								org/alt/distroless-base/distroless.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								org/alt/distroless-base/distroless.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
from = "{{ registry }}{{ branch }}/distroless-static:latest"
 | 
			
		||||
builder-install-packages = [
 | 
			
		||||
    "glibc-core",
 | 
			
		||||
    '{{if_branches(["p10"], "glibc-nss")}}',
 | 
			
		||||
    "glibc-timezones",
 | 
			
		||||
    "libselinux",
 | 
			
		||||
    '{{if_branches(["p10"], "libssl1.1")}}',
 | 
			
		||||
    '{{if_branches(["p11"], "libssl3")}}',
 | 
			
		||||
    '{{if_branches(["sisyphus"], "libssl3")}}',
 | 
			
		||||
    "tzdata",
 | 
			
		||||
    "zlib",
 | 
			
		||||
]
 | 
			
		||||
packages = [
 | 
			
		||||
    "glibc-core",
 | 
			
		||||
    '{{if_branches(["p10"], "glibc-nss")}}',
 | 
			
		||||
    "glibc-pthread",
 | 
			
		||||
    "glibc-timezones",
 | 
			
		||||
    "tzdata",
 | 
			
		||||
    "zlib",
 | 
			
		||||
]
 | 
			
		||||
timezone = "Europe/Moscow"
 | 
			
		||||
label = {"org.opencontainers.image.title" = "distroless-base", "org.opencontainers.image.description" = "Base image for running dynamically linked programs", "org.opencontainers.image.licenses" = "GPLv2", "org.opencontainers.image.vendor" = "ALT Linux Team"}
 | 
			
		||||
							
								
								
									
										9
									
								
								org/alt/distroless-base/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								org/alt/distroless-base/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - glibc
 | 
			
		||||
  - tzdata
 | 
			
		||||
  - zlib
 | 
			
		||||
  - libselinux
 | 
			
		||||
...
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM {{ registry }}{{ alt_image }}:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								org/alt/distroless-builder/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								org/alt/distroless-builder/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - glibc
 | 
			
		||||
  - apt-repo
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/distroless-builder/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/distroless-builder/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
apt-repo --version
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
from = "{{ registry }}{{ organization }}/distroless-base:{{ branch }}"
 | 
			
		||||
from = "{{ registry }}{{ branch }}/distroless-base:latest"
 | 
			
		||||
builder-install-packages = [
 | 
			
		||||
    "coreutils",
 | 
			
		||||
    "findutils",
 | 
			
		||||
@@ -37,3 +37,4 @@ packages = [
 | 
			
		||||
    "vim-console",
 | 
			
		||||
]
 | 
			
		||||
cmd = ["/bin/bash"]
 | 
			
		||||
label = {"org.opencontainers.image.title" = "distroless-devel", "org.opencontainers.image.description" = "Base image for creating and debugging distroless images", "org.opencontainers.image.licenses" = "GPLv2", "org.opencontainers.image.vendor" = "ALT Linux Team"}
 | 
			
		||||
							
								
								
									
										10
									
								
								org/alt/distroless-devel/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								org/alt/distroless-devel/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - coreutils
 | 
			
		||||
  - findutils
 | 
			
		||||
  - glibc
 | 
			
		||||
  - iproute2
 | 
			
		||||
  - vim
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/distroless-devel/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/distroless-devel/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
ss -V
 | 
			
		||||
							
								
								
									
										4
									
								
								org/alt/distroless-gotop/distroless.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								org/alt/distroless-gotop/distroless.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
from = "{{ registry }}{{ branch }}/distroless-base:latest"
 | 
			
		||||
full-files = ["/usr/bin/gotop"]
 | 
			
		||||
entrypoint = ["/usr/bin/gotop"]
 | 
			
		||||
label = {"org.opencontainers.image.title" = "distroless-gotop", "org.opencontainers.image.description" = "Gotop image", "org.opencontainers.image.licenses" = "GPLv2", "org.opencontainers.image.vendor" = "ALT Linux Team"}
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/distroless-gotop/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/distroless-gotop/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - gotop
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										5
									
								
								org/alt/distroless-static/distroless.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								org/alt/distroless-static/distroless.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
from = "scratch"
 | 
			
		||||
file-lists = ["static.list"]
 | 
			
		||||
user = "nonroot"
 | 
			
		||||
workdir = "/home/nonroot"
 | 
			
		||||
label = {"org.opencontainers.image.title" = "distroless-static", "org.opencontainers.image.description" = "Base image for running statically linked programs", "org.opencontainers.image.licenses" = "GPLv2", "org.opencontainers.image.vendor" = "ALT Linux Team"}
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/distroless-static/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/distroless-static/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - distroless-static
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										11
									
								
								org/alt/distroless-toybox/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								org/alt/distroless-toybox/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
ALT distroless-toybox image
 | 
			
		||||
===========================
 | 
			
		||||
 | 
			
		||||
This is distroless image with toybox binary. It can be used for debugging
 | 
			
		||||
containers as toybox provides a lot of utils.
 | 
			
		||||
 | 
			
		||||
To launch a shell in the container:
 | 
			
		||||
`docker run --rm -it registry.altlinux.org/alt/distroless-toybox`
 | 
			
		||||
 | 
			
		||||
To get system inforamtion:
 | 
			
		||||
`docker run --rm -it registry.altlinux.org/alt/distroless-toybox uname -a`
 | 
			
		||||
							
								
								
									
										7
									
								
								org/alt/distroless-toybox/distroless.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								org/alt/distroless-toybox/distroless.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
from = "{{ registry }}{{ branch }}/distroless-static:latest"
 | 
			
		||||
 | 
			
		||||
builder-install-packages = ["toybox"]
 | 
			
		||||
files = ["/bin/toybox"]
 | 
			
		||||
entrypoint = ["/bin/toybox"]
 | 
			
		||||
cmd = ["sh"]
 | 
			
		||||
label = {"org.opencontainers.image.title" = "distroless-toybox", "org.opencontainers.image.description" = "Base image with toybox environment", "org.opencontainers.image.licenses" = "GPLv2", "org.opencontainers.image.vendor" = "ALT Linux Team"}
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/distroless-toybox/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/distroless-toybox/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - toybox
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										4
									
								
								org/alt/distroless-true/distroless.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								org/alt/distroless-true/distroless.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
from = "{{ registry }}{{ branch }}/distroless-static:latest"
 | 
			
		||||
files = ["/bin/true"]
 | 
			
		||||
cmd = ["/bin/true"]
 | 
			
		||||
label = {"org.opencontainers.image.title" = "distroless-true", "org.opencontainers.image.description" = "True-command image for zero status returning", "org.opencontainers.image.licenses" = "GPLv2", "org.opencontainers.image.vendor" = "ALT Linux Team"}
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/distroless-true/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/distroless-true/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: false
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - distroless-true
 | 
			
		||||
...
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM {{ registry }}{{ alt_image }}:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/etcd/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/etcd/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - etcd
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/etcd/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/etcd/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
etcdctl version
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM {{ registry }}{{ alt_image }}:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/gitea/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/gitea/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - gitea
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/gitea/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/gitea/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
gitea --version
 | 
			
		||||
							
								
								
									
										11
									
								
								org/alt/golang/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								org/alt/golang/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/base:latest
 | 
			
		||||
 | 
			
		||||
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") }}
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/golang/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/golang/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - golang
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/golang/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/golang/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
go version
 | 
			
		||||
							
								
								
									
										22
									
								
								org/alt/grafana/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								org/alt/grafana/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
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'" ]
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/grafana/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/grafana/README.md
									
									
									
									
									
										Normal 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
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/grafana/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/grafana/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - grafana
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/grafana/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/grafana/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
grafana --version
 | 
			
		||||
							
								
								
									
										19
									
								
								org/alt/loki/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								org/alt/loki/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
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
									
								
							
							
						
						
									
										6
									
								
								org/alt/loki/README.md
									
									
									
									
									
										Normal 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
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/loki/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/loki/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - loki
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/loki/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/loki/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
loki -version -config.file=/etc/loki/loki.yaml
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM {{ registry }}{{ alt_image }}:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								org/alt/nginx/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								org/alt/nginx/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - nginx
 | 
			
		||||
  - apache2
 | 
			
		||||
  - tzdata
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/nginx/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/nginx/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
nginx -v
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
FROM {{ registry }}{{ organization }}/buildpack-deps:{{ branch }}
 | 
			
		||||
FROM {{ registry }}{{ branch }}/buildpack-deps:latest
 | 
			
		||||
 | 
			
		||||
MAINTAINER alt-cloud
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								org/alt/node/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								org/alt/node/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - node
 | 
			
		||||
  - yarn
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/node/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/node/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
node -v
 | 
			
		||||
							
								
								
									
										14
									
								
								org/alt/openjdk21/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								org/alt/openjdk21/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/base:latest
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
) }}
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/openjdk21/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/openjdk21/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - java-21-openjdk
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/openjdk21/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/openjdk21/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
javac --version && java --version
 | 
			
		||||
							
								
								
									
										21
									
								
								org/alt/php/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								org/alt/php/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/base:latest
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
 | 
			
		||||
{% if branch == 'p10' %}
 | 
			
		||||
{{ install_packages(
 | 
			
		||||
	"php8.2",
 | 
			
		||||
	"php8.2-xdebug",
 | 
			
		||||
) }}
 | 
			
		||||
{% else %}
 | 
			
		||||
{{ install_packages(
 | 
			
		||||
	"php8.3",
 | 
			
		||||
	"php8.3-xdebug",
 | 
			
		||||
) }}
 | 
			
		||||
{% endif %}
 | 
			
		||||
							
								
								
									
										11
									
								
								org/alt/php/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								org/alt/php/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - >
 | 
			
		||||
    {% if branch in [ "p10", "c10f1", "c10f2"] %}
 | 
			
		||||
    {% raw %}php8.2{% endraw %}
 | 
			
		||||
    {% else %}
 | 
			
		||||
    php8.3
 | 
			
		||||
    {% endif %}
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/php/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/php/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
php --version
 | 
			
		||||
							
								
								
									
										20
									
								
								org/alt/postgresql/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								org/alt/postgresql/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/base:latest
 | 
			
		||||
 | 
			
		||||
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" ]
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								org/alt/postgresql/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								org/alt/postgresql/README.md
									
									
									
									
									
										Normal 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`
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/postgresql/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/postgresql/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - postgresql16
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/postgresql/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/postgresql/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
pg_ctl --version
 | 
			
		||||
							
								
								
									
										20
									
								
								org/alt/prometheus-alertmanager/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								org/alt/prometheus-alertmanager/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
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" ]
 | 
			
		||||
							
								
								
									
										11
									
								
								org/alt/prometheus-alertmanager/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								org/alt/prometheus-alertmanager/README.md
									
									
									
									
									
										Normal 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"
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/prometheus-alertmanager/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/prometheus-alertmanager/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - prometheus-alertmanager
 | 
			
		||||
...
 | 
			
		||||
							
								
								
									
										1
									
								
								org/alt/prometheus-alertmanager/test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								org/alt/prometheus-alertmanager/test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
alertmanager --version
 | 
			
		||||
							
								
								
									
										19
									
								
								org/alt/prometheus-node_exporter/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								org/alt/prometheus-node_exporter/Dockerfile.template
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
FROM {{ registry }}{{ branch }}/{{ alt_image }}:latest
 | 
			
		||||
 | 
			
		||||
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" ]
 | 
			
		||||
							
								
								
									
										11
									
								
								org/alt/prometheus-node_exporter/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								org/alt/prometheus-node_exporter/README.md
									
									
									
									
									
										Normal 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"
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										6
									
								
								org/alt/prometheus-node_exporter/info.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								org/alt/prometheus-node_exporter/info.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
is_versioned: true
 | 
			
		||||
version_template: "{{ version }}"
 | 
			
		||||
source_packages:
 | 
			
		||||
  - prometheus-node_exporter
 | 
			
		||||
...
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user