6 Commits
Author SHA1 Message Date
chriz 4526a4f751 merge upstream
Build and Push Container Image / Build & Push to Gitea Package Registry (push) Successful in 2m10s
2026-10-26 20:53:28 +00:00
chriz 1448f058d8 Link footer adresses. 2026-10-26 21:52:53 +01:00
chriz 0141fa752a merge upstream
Build and Push Container Image / Build & Push to Gitea Package Registry (push) Successful in 2m9s
2026-10-26 20:14:32 +00:00
chriz 2ba30e2d46 fix build 2026-10-26 21:14:20 +01:00
chriz dba705f390 merge upstream
Build and Push Container Image / Build & Push to Gitea Package Registry (push) Failing after 1m37s
2026-10-26 20:09:53 +00:00
chriz ab589c23fd Fix build 2026-10-26 21:09:41 +01:00
3 changed files with 90 additions and 29 deletions

No files matched your search

+75 -21
View File
@@ -19,40 +19,94 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Gitea Container Registry
- name: Ensure Container Build Tools (Docker CLI / Buildah)
run: |
if ! command -v docker >/dev/null 2>&1; then
echo "Docker CLI not found in runner image; installing static Docker CLI..."
curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-27.3.1.tgz | tar xz -C /tmp
mv /tmp/docker/docker /usr/local/bin/docker
chmod +x /usr/local/bin/docker
rm -rf /tmp/docker
fi
docker --version
- name: Build, Validate, and Push Image to Gitea Package Registry
env:
REGISTRY_USER: ${{ gitea.actor }}
REGISTRY_TOKEN: ${{ secrets.GITEATOKEN }}
SERVER_URL: ${{ gitea.server_url }}
run: |
REGISTRY_HOST=$(echo "${SERVER_URL}" | sed -E 's#^https?://##; s#/$##')
echo "Logging in to ${REGISTRY_HOST} as ${REGISTRY_USER}..."
echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY_HOST}" -u "${REGISTRY_USER}" --password-stdin
- name: Build, Validate, and Push Docker Image
env:
SERVER_URL: ${{ gitea.server_url }}
REPO_NAME: ${{ gitea.repository }}
REF_NAME: ${{ gitea.ref_name }}
SHA: ${{ gitea.sha }}
run: |
REGISTRY_HOST=$(echo "${SERVER_URL}" | sed -E 's#^https?://##; s#/$##')
IS_HTTP=false
if echo "${SERVER_URL}" | grep -qE '^http://'; then
IS_HTTP=true
fi
IMAGE_PATH=$(echo "${REPO_NAME}" | tr '[:upper:]' '[:lower:]')
FULL_IMAGE="${REGISTRY_HOST}/${IMAGE_PATH}"
SHORT_SHA=$(echo "${SHA}" | cut -c1-7)
SAFE_REF=$(echo "${REF_NAME}" | sed -E 's#[^a-zA-Z0-9_.-]#-#g')
echo "Building image ${FULL_IMAGE}..."
docker build --pull \
-t "${FULL_IMAGE}:${SAFE_REF}" \
-t "${FULL_IMAGE}:${SHORT_SHA}" \
-t "${FULL_IMAGE}:latest" \
.
if docker info >/dev/null 2>&1; then
echo "Using Docker daemon via mounted socket..."
docker build --pull \
-t "${FULL_IMAGE}:${SAFE_REF}" \
-t "${FULL_IMAGE}:${SHORT_SHA}" \
-t "${FULL_IMAGE}:latest" \
.
echo "Validating PHP syntax inside built container..."
docker run --rm "${FULL_IMAGE}:${SHORT_SHA}" sh -c 'find /var/www/html -name "*.php" -exec php -l {} +'
echo "Validating PHP syntax inside built container..."
docker run --rm "${FULL_IMAGE}:${SHORT_SHA}" sh -c 'find /var/www/html -name "*.php" -exec php -l {} +'
echo "Pushing tags to Gitea Package Registry..."
docker push "${FULL_IMAGE}:${SAFE_REF}"
docker push "${FULL_IMAGE}:${SHORT_SHA}"
docker push "${FULL_IMAGE}:latest"
echo "Attempting Docker login to ${REGISTRY_HOST}..."
if echo "${REGISTRY_TOKEN}" | docker login "${SERVER_URL}" -u "${REGISTRY_USER}" --password-stdin 2>/dev/null \
|| echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY_HOST}" -u "${REGISTRY_USER}" --password-stdin 2>/dev/null; then
echo "Pushing tags via Docker CLI..."
docker push "${FULL_IMAGE}:${SAFE_REF}"
docker push "${FULL_IMAGE}:${SHORT_SHA}"
docker push "${FULL_IMAGE}:latest"
else
echo "Docker daemon rejected login (plain HTTP registry ${SERVER_URL} not in host insecure-registries)."
echo "Exporting built image with Docker CLI and pushing via skopeo..."
if ! command -v skopeo >/dev/null 2>&1; then
apt-get update && apt-get install -y skopeo
fi
TLS_FLAG="--dest-tls-verify=true"
if [ "${IS_HTTP}" = "true" ]; then
TLS_FLAG="--dest-tls-verify=false"
fi
docker save "${FULL_IMAGE}:${SHORT_SHA}" -o /tmp/image.tar
for TAG in "${SAFE_REF}" "${SHORT_SHA}" "latest"; do
echo "Pushing ${FULL_IMAGE}:${TAG}..."
skopeo copy ${TLS_FLAG} \
--dest-creds "${REGISTRY_USER}:${REGISTRY_TOKEN}" \
"docker-archive:/tmp/image.tar" \
"docker://${FULL_IMAGE}:${TAG}"
done
rm -f /tmp/image.tar
fi
else
echo "Docker socket (/var/run/docker.sock) is not mounted in this runner container."
echo "Falling back to daemonless Buildah..."
if ! command -v buildah >/dev/null 2>&1; then
apt-get update && apt-get install -y buildah
fi
TLS_FLAG="--tls-verify=true"
if [ "${IS_HTTP}" = "true" ]; then
TLS_FLAG="--tls-verify=false"
fi
buildah bud --storage-driver=vfs --isolation=chroot --pull \
-t "${FULL_IMAGE}:${SAFE_REF}" \
-t "${FULL_IMAGE}:${SHORT_SHA}" \
-t "${FULL_IMAGE}:latest" \
.
for TAG in "${SAFE_REF}" "${SHORT_SHA}" "latest"; do
buildah push --storage-driver=vfs ${TLS_FLAG} \
--creds "${REGISTRY_USER}:${REGISTRY_TOKEN}" \
"${FULL_IMAGE}:${TAG}" \
"docker://${FULL_IMAGE}:${TAG}"
done
fi
+7
View File
@@ -1610,6 +1610,13 @@ textarea.form-control {
gap: 0.65rem;
margin-bottom: 0.85rem;
line-height: 1.5;
color: #cbd5e1;
text-decoration: none;
}
a.footer-contact-item:hover {
color: #ffffff;
text-decoration: underline;
}
.footer-contact-item svg {
+8 -8
View File
@@ -399,14 +399,14 @@ if ($canonicalUrl && $currentAction !== 'main') {
Individuelle nephrologische Betreuung und ganzjährige Feriendialysen mit moderner Medizintechnik.
<?php endif; ?>
</p>
<div class="footer-contact-item">
<a href="https://www.google.com/maps/place/Dialysezentrum+Berlin-Mahlsdorf/@52.5078291,13.6092903,17z/data=!3m1!4b1!4m6!3m5!1s0x47a84991f9c57f7f:0xad4486f559442067!8m2!3d52.5078291!4d13.6092903!16s%2Fg%2F1tdqghgn" target="_blank" rel="noopener noreferrer" class="footer-contact-item" title="<?=$isEn ? 'Open Main Dialysis Center Berlin-Mahlsdorf in Google Maps' : 'Zentrumsdialyse Berlin-Mahlsdorf in Google Maps öffnen'?>" aria-label="<?=$isEn ? 'Main Center: Thorner Straße 1, 12623 Berlin (open in Google Maps)' : 'Zentrumsdialyse: Thorner Straße 1, 12623 Berlin (in Google Maps öffnen)'?>">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
<span><strong><?=$isEn ? 'Main Center:' : 'Zentrumsdialyse:'?></strong> Thorner Straße 1, 12623 Berlin</span>
</div>
<div class="footer-contact-item">
</a>
<a href="https://www.google.com/maps/place/Dialysezentrum+Berlin-Mahlsdorf+LC/@52.5428128,13.5716785,17z/data=!3m1!4b1!4m6!3m5!1s0x47a84991f9d5111b:0xda0b4785760166c5!8m2!3d52.5428128!4d13.5716785!16s%2Fg%2F1ts_5mmj" target="_blank" rel="noopener noreferrer" class="footer-contact-item" title="<?=$isEn ? 'Open Satellite Dialysis Marzahn in Google Maps' : 'Satellitendialyse Marzahn in Google Maps öffnen'?>" aria-label="<?=$isEn ? 'Satellite Unit: Blumberger Damm 130, 12685 Berlin (open in Google Maps)' : 'Satellitendialyse: Blumberger Damm 130, 12685 Berlin (in Google Maps öffnen)'?>">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z"/></svg>
<span><strong><?=$isEn ? 'Satellite Unit:' : 'Satellitendialyse:'?></strong> Blumberger Damm 130, 12685 Berlin</span>
</div>
</a>
</div>
<!-- Col 2: Navigation Links -->
@@ -426,14 +426,14 @@ if ($canonicalUrl && $currentAction !== 'main') {
<!-- Col 3: Contact & Opening info -->
<div>
<div class="footer-col-title"><?=$isEn ? 'Contact &amp; Availability' : 'Kontakt &amp; Erreichbarkeit'?></div>
<div class="footer-contact-item">
<a href="tel:0305662484" class="footer-contact-item" title="<?=$isEn ? 'Phone Dialysis' : 'Telefon Dialyse'?>">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
<span><?=$isEn ? 'Dialysis:' : 'Dialyse:'?> <strong>030 / 566 24 84</strong></span>
</div>
<div class="footer-contact-item">
</a>
<a href="tel:0305662539" class="footer-contact-item" title="<?=$isEn ? 'Phone Outpatient Clinic' : 'Telefon Ambulanz'?>">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
<span><?=$isEn ? 'Outpatient Clinic:' : 'Ambulanz:'?> <strong>030 / 566 25 39</strong></span>
</div>
</a>
<div class="footer-contact-item">
<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
<span><?=$isEn ? 'Email:' : 'E-Mail:'?> <a href="javascript:void(0);" class="mail-obf" data-usr="kontakt" data-dom="dialyse-berlin" data-tld="net" style="color: #cbd5e1; font-weight:600;"><span class="mail-val c-rev">net.nilreb-esylaid&#64;tkatnok</span></a></span>