Compare commits
No commits in common. "main" and "2024.10-1" have entirely different histories.
10 changed files with 56 additions and 123 deletions
31
.github/workflows/release.yml
vendored
31
.github/workflows/release.yml
vendored
|
@ -1,31 +0,0 @@
|
|||
name: Release into production
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: 'Version to release'
|
||||
required: true
|
||||
default: 'latest'
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: [dev, amd64]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Get git tag
|
||||
id: get_tag
|
||||
if: github.event_name == 'release'
|
||||
run: echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
||||
- name: Set version from input
|
||||
if: github.event_name == 'workflow_dispatch'
|
||||
run: echo "TAG_NAME=${{ github.event.inputs.version }}" >> $GITHUB_ENV
|
||||
- name: Registry login
|
||||
run: echo -n "${{ secrets.HARBOR_REPO_PASSWORD }}" | docker login harbor.rosti.cz -u "${{ secrets.HARBOR_REPO_USERNAME }}" --password-stdin
|
||||
- name: Final build
|
||||
run: task squashed REPO=harbor.rosti.cz/rosti/runtime VERSION=${{ env.TAG_NAME }}
|
||||
- name: Push
|
||||
run: task push REPO=harbor.rosti.cz/rosti/runtime VERSION=${{ env.TAG_NAME }}
|
16
.github/workflows/test.yml
vendored
16
.github/workflows/test.yml
vendored
|
@ -6,20 +6,14 @@ on:
|
|||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: [dev, amd64]
|
||||
runs-on: [moon, amd64]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: docker login
|
||||
- name: Test build
|
||||
run: |
|
||||
# echo "${{ secrets.repo_password }}" | podman login -u $USERNAME --password-stdin $REPO
|
||||
docker login gitea.ceperka.net -u "${{ secrets.REPO_USERNAME }}" -p "${{ secrets.REPO_PASSWORD }}"
|
||||
- name: Build
|
||||
run: task build REPO=gitea.ceperka.net/rosti/runtime VERSION=pipeline
|
||||
- name: Test
|
||||
run: task test REPO=gitea.ceperka.net/rosti/runtime VERSION=pipeline
|
||||
- name: Push
|
||||
run: task push REPO=gitea.ceperka.net/rosti/runtime VERSION=pipeline
|
||||
- name: Cleaning step
|
||||
if: always()
|
||||
run: docker stop dev_test || exit 0
|
||||
task pipeline REPO=gitea.ceperka.net/rosti/runtime VERSION=pipeline
|
||||
|
||||
|
||||
|
||||
|
|
35
Dockerfile
35
Dockerfile
|
@ -22,8 +22,7 @@ libcurl4-openssl-dev python3-dev libproj-dev gdal-bin libmemcached-dev swig mutt
|
|||
ffmpeg libyaml-dev libc-client2007e-dev libonig-dev libkrb5-dev dialog \
|
||||
whiptail tmux rsync nmap libzip-dev libfreetype6-dev \
|
||||
jpegoptim optipng pngquant gifsicle webp libvpx-dev libwebp-dev jq inotify-tools ripgrep \
|
||||
wkhtmltopdf libzbar0 fzf \
|
||||
gnupg2 unixodbc-dev apt-transport-https libgssapi-krb5-2 # for MS SQL Server extension
|
||||
wkhtmltopdf libzbar0 fzf
|
||||
|
||||
# This is stange thing in Debian 12, it blocks installation of chromium
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get remove -y luit
|
||||
|
@ -51,54 +50,52 @@ ENV TERM xterm
|
|||
# From https://nodejs.org/en/about/previous-releases
|
||||
WORKDIR /usr/src
|
||||
ADD build_node.sh /usr/local/bin/build_node.sh
|
||||
RUN build_node.sh 18.20.5 & \
|
||||
build_node.sh 20.18.1 & \
|
||||
build_node.sh 21.7.3 & \
|
||||
build_node.sh 22.13.0 & \
|
||||
build_node.sh 23.6.0
|
||||
RUN build_node.sh 18.20.4
|
||||
RUN build_node.sh 20.18.0
|
||||
RUN build_node.sh 21.7.3
|
||||
RUN build_node.sh 22.9.0
|
||||
|
||||
## Python
|
||||
# https://www.python.org/downloads/
|
||||
WORKDIR /usr/src
|
||||
ADD build_python.sh /usr/local/bin/build_python.sh
|
||||
RUN build_python.sh 3.11.11
|
||||
RUN build_python.sh 3.12.8
|
||||
RUN build_python.sh 3.13.1
|
||||
RUN build_python.sh 3.11.10
|
||||
RUN build_python.sh 3.12.7
|
||||
RUN build_python.sh 3.13.0
|
||||
|
||||
## PHP 8
|
||||
# https://www.php.net/downloads.php
|
||||
ADD build_php8.sh /usr/local/bin/build_php8.sh
|
||||
RUN build_php8.sh 8.3.16
|
||||
RUN build_php8.sh 8.4.3
|
||||
RUN build_php8.sh 8.2.24
|
||||
RUN build_php8.sh 8.3.12
|
||||
|
||||
## Ruby
|
||||
# https://www.ruby-lang.org/en/downloads/releases/
|
||||
WORKDIR /usr/src
|
||||
ADD build_ruby.sh /usr/local/bin/build_ruby.sh
|
||||
RUN build_ruby.sh 3.3.7
|
||||
RUN build_ruby.sh 3.4.1
|
||||
RUN build_ruby.sh 3.2.5
|
||||
RUN build_ruby.sh 3.3.5
|
||||
|
||||
## Deno
|
||||
# From: https://github.com/denoland/deno/releases
|
||||
ADD build_deno.sh /usr/local/bin/build_deno.sh
|
||||
# TODO: deno cannot run in parallel because it downloads filenames with the same name
|
||||
RUN build_deno.sh 1.46.3
|
||||
RUN build_deno.sh 2.1.6
|
||||
|
||||
# Bun
|
||||
# From here: https://bun.sh/
|
||||
ADD build_bun.sh /usr/local/bin/build_bun.sh
|
||||
RUN build_bun.sh 1.1.45
|
||||
RUN build_bun.sh 1.1.29
|
||||
|
||||
# OpenJDK
|
||||
# From here: https://jdk.java.net/
|
||||
ADD build_openjdk.sh /usr/local/bin/build_openjdk.sh
|
||||
RUN build_openjdk.sh 23.0.1 c28985cbf10d4e648e4004050f8781aa 11
|
||||
# RUN build_openjdk.sh 22.0.2 c9ecb94cd31b495da20a27d4581645e8 9
|
||||
RUN build_openjdk.sh 23 3c5b90190c68498b986a97f276efd28a 37
|
||||
|
||||
# Golang
|
||||
# From here: https://go.dev/dl/
|
||||
ADD build_golang.sh /usr/local/bin/build_golang.sh
|
||||
RUN build_golang.sh 1.23.5
|
||||
RUN build_golang.sh 1.23.2
|
||||
|
||||
|
||||
#############
|
||||
|
|
18
Taskfile.yml
18
Taskfile.yml
|
@ -3,9 +3,8 @@
|
|||
version: '3'
|
||||
|
||||
vars:
|
||||
REPO: harbor.hq.rosti.cz
|
||||
REPO_PUBLIC: rosti/runtime
|
||||
VERSION: 2025.01-1
|
||||
REPO: harbor.hq.rosti.cz/rosti/runtime
|
||||
VERSION: 2024.10-1
|
||||
BASEIMAGE: debian:bookworm
|
||||
|
||||
tasks:
|
||||
|
@ -22,7 +21,7 @@ tasks:
|
|||
build:
|
||||
cmds:
|
||||
- docker pull {{ .BASEIMAGE }}
|
||||
- docker build --progress plain -t {{ .REPO }}:dev .
|
||||
- docker build -t {{ .REPO }}:dev .
|
||||
- docker tag {{ .REPO }}:dev {{ .REPO }}:{{ .VERSION }}
|
||||
- echo "JSON for admin:"
|
||||
- python3 generate_versions.py
|
||||
|
@ -34,7 +33,7 @@ tasks:
|
|||
squashed:
|
||||
cmds:
|
||||
- docker pull {{ .BASEIMAGE }}
|
||||
- docker build --progress plain --squash -t {{ .REPO }}:dev-squashed .
|
||||
- docker build --squash -t {{ .REPO }}:dev-squashed .
|
||||
- docker tag {{ .REPO }}:dev-squashed {{ .REPO }}:{{ .VERSION }}
|
||||
- echo "JSON for admin:"
|
||||
- python3 generate_versions.py
|
||||
|
@ -44,12 +43,3 @@ tasks:
|
|||
- docker push {{ .REPO }}:{{ .VERSION }}
|
||||
# deps:
|
||||
# - squashed
|
||||
|
||||
install:
|
||||
cmds:
|
||||
- ssh rosti-node-26 docker pull {{ .REPO }}:{{ .VERSION }}
|
||||
- ssh rosti-node-26 docker tag {{ .REPO }}:{{ .VERSION }} {{ .REPO_PUBLIC }}:{{ .VERSION }}
|
||||
|
||||
publish:
|
||||
cmds:
|
||||
- ssh rosti-node-26 docker push {{ .REPO_PUBLIC }}:{{ .VERSION }}
|
||||
|
|
|
@ -71,8 +71,6 @@ cd -
|
|||
|
||||
echo "no" | /opt/techs/php-$VERSION/bin/pecl install redis
|
||||
echo "no" | /opt/techs/php-$VERSION/bin/pecl install mongodb
|
||||
echo "no" | /opt/techs/php-$VERSION/bin/pecl install sqlsrv
|
||||
echo "no" | /opt/techs/php-$VERSION/bin/pecl install pdo_sqlsrv
|
||||
|
||||
export PATH=$PATH:/opt/techs/php-$VERSION/bin
|
||||
composer.phar require ext-simplexml
|
||||
|
@ -80,16 +78,14 @@ composer.phar require ext-simplexml
|
|||
echo "zend_extension=opcache.so" > /opt/techs/php-$VERSION/etc/conf.d/extensions.ini
|
||||
echo "extension=redis.so" >> /opt/techs/php-$VERSION/etc/conf.d/extensions.ini
|
||||
echo "extension=mongodb.so" >> /opt/techs/php-$VERSION/etc/conf.d/extensions.ini
|
||||
echo "extension=sqlsrv.so" >> /opt/techs/php-$VERSION/etc/conf.d/extensions.ini
|
||||
echo "extension=pdo_sqlsrv.so" >> /opt/techs/php-$VERSION/etc/conf.d/extensions.ini
|
||||
|
||||
# Not supported yet
|
||||
# https://github.com/Imagick/imagick/issues/358
|
||||
# We ignore PHP 8.3.2 until it's fixed
|
||||
# if [ "$VERSION" != "8.3.2" -a "$VERSION" != "8.3.6" -a "$VERSION" != "8.3.9" -a "$VERSION" != "8.3.12" ]; then
|
||||
# echo "no" | /opt/techs/php-$VERSION/bin/pecl install imagick
|
||||
# echo "extension=imagick.so" >> /opt/techs/php-$VERSION/etc/conf.d/extensions.ini
|
||||
# fi
|
||||
if [ "$VERSION" != "8.3.2" -a "$VERSION" != "8.3.6" -a "$VERSION" != "8.3.9" -a "$VERSION" != "8.3.12" ]; then
|
||||
echo "no" | /opt/techs/php-$VERSION/bin/pecl install imagick
|
||||
echo "extension=imagick.so" >> /opt/techs/php-$VERSION/etc/conf.d/extensions.ini
|
||||
fi
|
||||
|
||||
|
||||
ln -s /srv/conf/php-fpm/php.ini /opt/techs/php-$VERSION/etc/conf.d/99-app.ini
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
worker_processes 1;
|
||||
error_log stderr;
|
||||
pid /srv/run/nginx.pid;
|
||||
|
||||
include /etc/nginx/modules-enabled/*.conf;
|
||||
error_log stderr;
|
||||
|
||||
pid /srv/run/nginx.pid;
|
||||
|
||||
|
||||
events {
|
||||
|
@ -82,6 +82,3 @@ http {
|
|||
|
||||
include /srv/conf/nginx.d/*;
|
||||
}
|
||||
|
||||
include /srv/conf/nginx.main.d/*;
|
||||
|
||||
|
|
|
@ -4,14 +4,9 @@ set TECHS_FILE /tmp/techs.txt
|
|||
|
||||
echo -n > $TECHS_FILE
|
||||
|
||||
for line in (cat Dockerfile | grep "build_" | grep -v "/usr/local")
|
||||
set line (echo $line | sed "s/RUN //")
|
||||
set line (echo $line | sed "s/ADD //")
|
||||
set line (echo $line | sed "s/& \\\//")
|
||||
set line (echo $line | sed "s/^[ ]*//")
|
||||
|
||||
set VERSION (echo $line | cut -d " " -f 2)
|
||||
set TECH_SCRIPT (echo $line | cut -d " " -f 1)
|
||||
for line in (cat Dockerfile | grep "RUN build_")
|
||||
set VERSION (echo $line | cut -d " " -f 3)
|
||||
set TECH_SCRIPT (echo $line | cut -d " " -f 2)
|
||||
|
||||
switch $TECH_SCRIPT
|
||||
case "build_php.sh"
|
||||
|
|
|
@ -19,16 +19,12 @@ with open("Dockerfile") as f:
|
|||
if line.startswith("FROM debian:"):
|
||||
image = line.split(" ")[1].strip()
|
||||
continue
|
||||
if "build_" in line and "ADD" not in line:
|
||||
line = line.replace("RUN ", "").strip()
|
||||
line = line.replace("& \\", "")
|
||||
line = line.lstrip(" ")
|
||||
|
||||
if line.startswith("RUN build_"):
|
||||
parts = line.split(" ")
|
||||
name = parts[0].replace("build_", "").replace(".sh", "")
|
||||
name = parts[1].replace("build_", "").replace(".sh", "")
|
||||
if name.startswith("php"):
|
||||
name = "php"
|
||||
version = parts[1].strip()
|
||||
version = line.split(" ")[2].strip()
|
||||
if name not in output["techs"]:
|
||||
output["techs"][name] = {
|
||||
"versions": [],
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
. ~/.bashrc
|
||||
|
||||
# DEFAULT VERSIONS
|
||||
VERSION_NODE="23.6.0"
|
||||
VERSION_PYTHON="3.13.1"
|
||||
VERSION_PHP="8.4.3"
|
||||
VERSION_RUBY="3.4.1"
|
||||
VERSION_DENO="2.1.6"
|
||||
VERSION_BUN="1.1.45"
|
||||
VERSION_OPENJDK="23.0.1"
|
||||
VERSION_GOLANG="1.23.5"
|
||||
VERSION_PYTHON="3.13.0"
|
||||
VERSION_PHP="8.3.12"
|
||||
VERSION_NODE="22.9.0"
|
||||
VERSION_RUBY="3.3.5"
|
||||
VERSION_DENO="1.46.3"
|
||||
VERSION_BUN="1.1.29"
|
||||
VERSION_OPENJDK="23"
|
||||
VERSION_GOLANG="1.23.2"
|
||||
|
||||
WIDTH=180
|
||||
HEIGHT=25
|
||||
|
@ -54,15 +54,6 @@ function setTech() {
|
|||
if [ -e /srv/app/supervisor.conf ]; then
|
||||
mv /srv/app/supervisor.conf /srv/conf/supervisor.d/$name.conf
|
||||
fi
|
||||
|
||||
# Ruby initialization specifics
|
||||
if [ "$name" = "ruby" ]; then
|
||||
mkdir -p /srv/app/public
|
||||
rm /srv/conf/nginx.d/app.conf
|
||||
mv /srv/app/index.html /srv/app/public/index.html
|
||||
rm -rf /srv/conf/nginx.d
|
||||
rm -f /srv/conf/supervisor.d/nginx.conf
|
||||
fi
|
||||
else
|
||||
echo "IMPORTANT: /srv/app found so no configuration or files are copied, make sure the application is ok after this process"
|
||||
fi
|
||||
|
@ -121,6 +112,14 @@ function setTech() {
|
|||
echo ".. app configuration for nginx not found, adding it - please check /srv/conf/nginx.d/app.conf and make sure it fits your code"
|
||||
fi
|
||||
|
||||
if [ "$name" = "ruby" ]; then
|
||||
mkdir -p /srv/app/public
|
||||
rm /srv/conf/nginx.d/app.conf
|
||||
mv /srv/app/index.html /srv/app/public/index.html
|
||||
rm -rf /srv/conf/nginx.d
|
||||
rm -f /srv/conf/supervisor.d/nginx.conf
|
||||
fi
|
||||
|
||||
# We load new configuration into supervisor and it's automatically started or restarted if needed
|
||||
supervisorctl reread
|
||||
supervisorctl update
|
||||
|
|
|
@ -24,10 +24,10 @@ fi
|
|||
CONTAINER_NAME=dev_test
|
||||
$DOCKER stop $CONTAINER_NAME &>/dev/null
|
||||
|
||||
COUNT=`cat Dockerfile | grep -e "build_" | grep -v "/usr/local" | sed "s/RUN //" | sed "s/ADD //" | sed 's/& \\\//' | sed "s/^[ ]*//" | sed "s/build_//" | sed "s/\.sh//" | sed "s/php8/php/" | wc -l`
|
||||
COUNT=`cat Dockerfile | grep -e "^RUN build_" | sed "s/RUN build_//" | sed "s/\.sh//" | sed "s/php8/php/" | wc -l`
|
||||
I=1
|
||||
|
||||
cat Dockerfile | grep -e "build_" | grep -v "/usr/local" | sed "s/RUN //" | sed "s/ADD //" | sed 's/& \\//' | sed "s/^[ ]*//" | sed "s/build_//" | sed "s/\.sh//" | sed "s/php8/php/" | \
|
||||
cat Dockerfile | grep -e "^RUN build_" | sed "s/RUN build_//" | sed "s/\.sh//" | sed "s/php8/php/" | \
|
||||
while read line
|
||||
do
|
||||
tech=`echo $line | cut -d " " -f 1`
|
||||
|
|
Loading…
Reference in a new issue