add build workflow and add versioning and change to the php base image
This commit is contained in:
@@ -0,0 +1,55 @@
|
|||||||
|
name: Build and Push Docker Container
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-push:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
# --- Extract Version Tag or Commit SHA ---
|
||||||
|
- name: Determine version tag
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
|
||||||
|
echo "VERSION_TAG=$TAG" >> $GITHUB_ENV
|
||||||
|
echo "Using version tag: $TAG"
|
||||||
|
|
||||||
|
# --- Login to Gitea Registry ---
|
||||||
|
- name: Login to Gitea Registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ${{ vars.DOCKER_REGISTRY_URL }}
|
||||||
|
username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
|
||||||
|
password: ${{ secrets.ACTION_ACCESS_TOKEN }}
|
||||||
|
|
||||||
|
# --- Login to Docker Hub ---
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Convert repository owner to lowercase
|
||||||
|
run: echo "REPO_OWNER_LC=$(echo '${{ gitea.repository_owner }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
# --- Build and Push to Both Registries ---
|
||||||
|
- name: Build and push Docker image
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: true
|
||||||
|
platforms: linux/amd64
|
||||||
|
tags: |
|
||||||
|
${{ vars.GITEA_REGISTRY_URL }}/${{ env.REPO_OWNER_LC }}/apache-php:latest
|
||||||
|
${{ secrets.DOCKERHUB_USERNAME }}/apache-php:latest
|
||||||
|
${{ secrets.DOCKERHUB_USERNAME }}/apache-php:${{ env.VERSION_TAG }}
|
||||||
+10
-15
@@ -1,23 +1,18 @@
|
|||||||
FROM ubuntu:latest
|
FROM php:8.4-apache
|
||||||
|
|
||||||
ENV TZ=Europe/Vienna
|
ENV TZ=Europe/Vienna
|
||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
|
||||||
RUN apt-get update && apt-get update -y && apt-get install -y software-properties-common && apt-add-repository universe && add-apt-repository ppa:ondrej/php
|
RUN docker-php-ext-install mysqli pdo pdo_mysql
|
||||||
RUN apt-get update && apt-get install -y apache2 php libapache2-mod-php php-mysql php-common php-mbstring apt-utils tzdata nano && apt-get clean
|
|
||||||
|
|
||||||
ENV APACHE_RUN_USER=www-data
|
# Install Composer from the official image
|
||||||
ENV APACHE_RUN_GROUP=www-data
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||||
ENV APACHE_LOG_DIR=/var/log/apache2
|
|
||||||
ENV APACHE_PID_FILE=/var/run/apache2/apache2.pid
|
|
||||||
ENV APACHE_RUN_DIR=/var/run/apache2
|
|
||||||
ENV APACHE_LOCK_DIR=/var/lock/apache2
|
|
||||||
ENV APACHE_LOG_DIR=/var/log/apache2
|
|
||||||
|
|
||||||
RUN mkdir -p $APACHE_RUN_DIR
|
# Set the working directory inside the container
|
||||||
RUN mkdir -p $APACHE_LOCK_DIR
|
WORKDIR /var/www/html
|
||||||
RUN mkdir -p $APACHE_LOG_DIR
|
COPY ./src /var/www/html/
|
||||||
|
|
||||||
|
RUN chown -R www-data:www-data /var/www/html
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
CMD ["apache2-foreground"]
|
||||||
CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
phpinfo();
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user