22 Commits
Author SHA1 Message Date
david a074def041 fix typo 2026-07-25 13:07:50 +02:00
david d7375010d2 update test action 2026-07-25 13:07:15 +02:00
david b2cb2502c8 fix typo in test action 2026-07-25 13:02:27 +02:00
david 51a7cdac0d update test action 2026-07-25 13:01:02 +02:00
david 93d03e16d4 testing variable outputs 2026-07-25 12:48:51 +02:00
david 731661282d testing actions 2026-07-25 12:42:40 +02:00
david 7e9a5c82fe testing gitea action 2026-07-25 12:34:18 +02:00
david db7719f55c update sdk version in build pipeline 2026-07-21 09:00:24 +02:00
david df13f6491b update build action 2026-07-13 09:39:02 +02:00
david 80ddd47ac6 fix build pipeline 2026-07-13 09:25:19 +02:00
david 818465eaae update action for tags 2026-07-13 09:23:57 +02:00
david 80e0b90ead update build pipeline for tags 2026-07-13 09:05:36 +02:00
david 773a25f302 update build action 2026-07-13 08:49:19 +02:00
david 4aa31fe311 update action 2026-07-13 08:36:22 +02:00
david fffd872ba9 update actions 2026-07-09 16:58:24 +02:00
david 63f8fb8681 update build action 2026-06-25 09:56:23 +02:00
david 9ae0c2349e update build action 2026-06-25 09:53:58 +02:00
david 489b1ccd48 update action 2026-06-25 09:35:00 +02:00
david 16a935cbe5 update action file 2026-06-25 09:21:32 +02:00
david 56d78fa030 update docker file 2026-06-25 09:18:01 +02:00
david 64d72d6c2d update build 2026-06-25 09:09:48 +02:00
david 13ecfe5494 update build 2026-06-24 14:50:15 +02:00
3 changed files with 113 additions and 12 deletions
+100 -8
View File
@@ -1,6 +1,18 @@
name: 'Build docker container'
on:
release:
workflow_dispatch:
inputs:
branch:
description: "Select branch to build"
required: true
type: choice
options:
- 9.0-alpine-24
- 9.0-alpine-23
- 9.0-alpine-22
- 9.0-alpine-21
- 8.0-alpine-22
- 8.0-alpine-21
jobs:
build:
runs-on: ubuntu-latest
@@ -10,6 +22,83 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set build variables for docker build
id: variables-test
uses: https://git.claeyscloud.com/david/gitea-actions/conditional-variables@main
with:
context: |
branch=${{ inputs.branch }}
rules: |
- conditions:
- branch == 9.0-alpine-24
- branch == 9.0-alpine-23
set:
DOTNET_SDK_VERSION=9.0
DOTNET_RUNTIME_VERSION=9.0.18
- conditions:
- branch == 9.0-alpine-24
set:
ALPINE_VERSION=24
- name: Dump contexts
env:
GITEA_CONTEXT: ${{ toJson(gitea) }}
JOB_CONTEXT: ${{ toJson(job) }}
RUNNER_CONTEXT: ${{ toJson(runner) }}
STRATEGY_CONTEXT: ${{ toJson(strategy) }}
MATRIX_CONTEXT: ${{ toJson(matrix) }}
run: |
echo "=== ENVIRONMENT VARIABLES ==="
echo '${{ toJson(steps.variables-test.outputs) }}'
# echo "$GITEA_CONTEXT"
# echo "$JOB_CONTEXT"
# echo "$RUNNER_CONTEXT"
# echo "$STRATEGY_CONTEXT"
# echo "$MATRIX_CONTEXT"
- name: Set build variables for docker build
id: variables
run: |
case "${{ inputs.branch }}" in
9.0-alpine-24)
echo "DOTNET_SDK_VERSION=9.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=9.0.18" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.24" >> $GITHUB_OUTPUT
echo "IS_LATEST=true" >> $GITHUB_OUTPUT
;;
9.0-alpine-23)
echo "DOTNET_SDK_VERSION=9.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=9.0.18" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.23" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
9.0-alpine-22)
echo "DOTNET_SDK_VERSION=9.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=9.0" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.22" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
9.0-alpine-21)
echo "DOTNET_SDK_VERSION=9.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=9.0" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.21" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
8.0-alpine-22)
echo "DOTNET_SDK_VERSION=8.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=8.0" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.22" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
8.0-alpine-21)
echo "DOTNET_SDK_VERSION=8.0" >> $GITHUB_OUTPUT
echo "DOTNET_RUNTIME_VERSION=8.0" >> $GITHUB_OUTPUT
echo "ALPINE_VERSION=3.21" >> $GITHUB_OUTPUT
echo "IS_LATEST=false" >> $GITHUB_OUTPUT
;;
*)
echo "Unsupported branch"
exit 1
;;
esac
- name: Install Docker
run: |
echo "Checking docker installation"
@@ -26,20 +115,19 @@ jobs:
with:
registry: git.claeyscloud.com
username: nologin
password: ${{ secrets.PACKAGE_TOKEN }}
password: ${{ secrets.PACKAGE_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
labels: |
org.opencontainers.image.documentation=https://git.claeyscloud.com/david/epg-info-docker/src/branch/main/README.md
org.opencontainers.image.documentation=https://git.claeyscloud.com/david/net-base/README.md
images: |
git.claeyscloud.com/david/net-base
tags: |
type=semver,pattern={{raw}}
type=semver,pattern={{version}}
type=semver,pattern={{major}}
type=sha
type=raw,value=${{ inputs.branch }}
type=raw,value=latest,enable=${{ steps.variables.outputs.IS_LATEST == 'true' }}
type=sha
- name: Generate random password for certificate
id: password
run:
@@ -47,7 +135,11 @@ jobs:
- name: Build and push
uses: https://github.com/docker/build-push-action@v5
with:
build-args: CERT_PASSWORD=${{ steps.password.outputs.secret }}
build-args: |
CERT_PASSWORD=${{ steps.password.outputs.secret }}
DOTNET_SDK_VERSION=${{ steps.variables.outputs.DOTNET_SDK_VERSION }}
DOTNET_RUNTIME_VERSION=${{ steps.variables.outputs.DOTNET_RUNTIME_VERSION }}
ALPINE_VERSION=${{ steps.variables.outputs.ALPINE_VERSION }}
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
+2 -2
View File
@@ -3,7 +3,7 @@ ARG DOTNET_SDK_VERSION=10.0.100
ARG DOTNET_RUNTIME_VERSION=10.0.0
ARG ALPINE_VERSION=3.22
ARG CONFIG_DIRECTORY_ARG=/config
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_SDK_VERSION}-alpine${ALPINE_VERSION}-amd64 AS build-env
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_SDK_VERSION}-alpine${ALPINE_VERSION} AS build-env
ARG CONFIG_DIRECTORY_ARG
ENV CONFIG_DIRECTORY=$CONFIG_DIRECTORY_ARG
ARG CERT_PASSWORD
@@ -13,7 +13,7 @@ RUN mkdir $CONFIG_DIRECTORY \
&& rm -rf /var/cache/apk/* \
&& dotnet dev-certs https --export-path /config/aspnetapp.pem --password "$CERT_PASSWORD" --format PEM
FROM mcr.microsoft.com/dotnet/aspnet:${DOTNET_RUNTIME_VERSION}-alpine${ALPINE_VERSION}-amd64
FROM mcr.microsoft.com/dotnet/aspnet:${DOTNET_RUNTIME_VERSION}-alpine${ALPINE_VERSION}
ARG CONFIG_DIRECTORY_ARG
ENV CONFIG_DIRECTORY=$CONFIG_DIRECTORY_ARG
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
+11 -2
View File
@@ -93,8 +93,17 @@ Depending on your use-case you event might consider to use docker networking in
The included certificate is generated through the _dotnet dev-certs_ command. This is a very convenient and suitable way to generate development certificates through the dotnet SDK.
The password used to generate the certificate is randomly generated through the `openssl rand -base64 12` at build time.
The build agent used for the build is hosted on my own infrastructure but I don't have any access to it (neither do I intend to do so).<br/>
However if you feel uncomfortable with this fact, feel free to build the image yourself.
If you inspect the image layers you'll able to easily see it.
I think this is fine for development purposes and just want to get things up and running, although this is not recommended for production use at all.
You can generate your own password and certificates in the following way :
```sh
# generate a random secure password
openssl rand -base64 12
# use the .net cli to generate your own certificates with your chosen password
dotnet dev-certs https --export-path /config/aspnetapp.pem --password "YOUR PASSWORD" --format PEM
```
After this you only need to map your own certificates with the **ASPNETCORE_Kestrel__Certificates__** variables.
### Versioning