split docker to use base image for faster builds (#4586)
This commit is contained in:
209
.docker/Dockerfile.kimai-base
Normal file
209
.docker/Dockerfile.kimai-base
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
# Source base [fpm/apache]
|
||||||
|
ARG BASE="fpm"
|
||||||
|
ARG PHP_VER="8.2"
|
||||||
|
ARG COMPOSER_VER="latest"
|
||||||
|
ARG TIMEZONE="Europe/London"
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Shared tools
|
||||||
|
###########################
|
||||||
|
|
||||||
|
# composer base image
|
||||||
|
FROM composer:${COMPOSER_VER} AS composer
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# PHP extensions
|
||||||
|
###########################
|
||||||
|
|
||||||
|
#fpm alpine php extension base
|
||||||
|
FROM php:${PHP_VER}-fpm-alpine AS fpm-php-ext-base
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
# build-tools
|
||||||
|
autoconf \
|
||||||
|
dpkg \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
icu-dev \
|
||||||
|
libatomic \
|
||||||
|
libc-dev \
|
||||||
|
libgomp \
|
||||||
|
libmagic \
|
||||||
|
m4 \
|
||||||
|
make \
|
||||||
|
mpc1 \
|
||||||
|
mpfr4 \
|
||||||
|
musl-dev \
|
||||||
|
perl \
|
||||||
|
re2c \
|
||||||
|
# gd
|
||||||
|
freetype-dev \
|
||||||
|
libpng-dev \
|
||||||
|
# icu
|
||||||
|
icu-dev \
|
||||||
|
icu-data-full \
|
||||||
|
# ldap
|
||||||
|
openldap-dev \
|
||||||
|
libldap \
|
||||||
|
# zip
|
||||||
|
libzip-dev \
|
||||||
|
# xsl
|
||||||
|
libxslt-dev
|
||||||
|
|
||||||
|
|
||||||
|
# apache debian php extension base
|
||||||
|
FROM php:${PHP_VER}-apache-bookworm AS apache-php-ext-base
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install -y \
|
||||||
|
libldap2-dev \
|
||||||
|
libicu-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libzip-dev \
|
||||||
|
libxslt1-dev \
|
||||||
|
libfreetype6-dev
|
||||||
|
|
||||||
|
|
||||||
|
# php extension gd - 13.86s
|
||||||
|
FROM ${BASE}-php-ext-base AS php-ext-gd
|
||||||
|
RUN docker-php-ext-configure gd \
|
||||||
|
--with-freetype && \
|
||||||
|
docker-php-ext-install -j$(nproc) gd
|
||||||
|
|
||||||
|
# php extension intl : 15.26s
|
||||||
|
FROM ${BASE}-php-ext-base AS php-ext-intl
|
||||||
|
RUN docker-php-ext-install -j$(nproc) intl
|
||||||
|
|
||||||
|
# php extension ldap : 8.45s
|
||||||
|
FROM ${BASE}-php-ext-base AS php-ext-ldap
|
||||||
|
RUN docker-php-ext-configure ldap && \
|
||||||
|
docker-php-ext-install -j$(nproc) ldap
|
||||||
|
|
||||||
|
# php extension pdo_mysql : 6.14s
|
||||||
|
FROM ${BASE}-php-ext-base AS php-ext-pdo_mysql
|
||||||
|
RUN docker-php-ext-install -j$(nproc) pdo_mysql
|
||||||
|
|
||||||
|
# php extension zip : 8.18s
|
||||||
|
FROM ${BASE}-php-ext-base AS php-ext-zip
|
||||||
|
RUN docker-php-ext-install -j$(nproc) zip
|
||||||
|
|
||||||
|
# php extension xsl : ?.?? s
|
||||||
|
FROM ${BASE}-php-ext-base AS php-ext-xsl
|
||||||
|
RUN docker-php-ext-install -j$(nproc) xsl
|
||||||
|
|
||||||
|
# php extension redis
|
||||||
|
FROM ${BASE}-php-ext-base AS php-ext-redis
|
||||||
|
RUN yes no | pecl install redis && \
|
||||||
|
docker-php-ext-enable redis
|
||||||
|
|
||||||
|
# php extension opcache
|
||||||
|
FROM ${BASE}-php-ext-base AS php-ext-opcache
|
||||||
|
RUN docker-php-ext-install -j$(nproc) opcache
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# fpm base build
|
||||||
|
###########################
|
||||||
|
|
||||||
|
# fpm base build
|
||||||
|
FROM php:${PHP_VER}-fpm-alpine AS fpm-base
|
||||||
|
ARG TIMEZONE
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
bash \
|
||||||
|
coreutils \
|
||||||
|
freetype \
|
||||||
|
haveged \
|
||||||
|
icu \
|
||||||
|
icu-data-full \
|
||||||
|
libldap \
|
||||||
|
libpng \
|
||||||
|
libzip \
|
||||||
|
libxslt-dev \
|
||||||
|
fcgi \
|
||||||
|
tzdata && \
|
||||||
|
touch /use_fpm
|
||||||
|
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
HEALTHCHECK --interval=20s --timeout=10s --retries=3 \
|
||||||
|
CMD \
|
||||||
|
SCRIPT_NAME=/ping \
|
||||||
|
SCRIPT_FILENAME=/ping \
|
||||||
|
REQUEST_METHOD=GET \
|
||||||
|
cgi-fcgi -bind -connect 127.0.0.1:9000 || exit 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# apache base build
|
||||||
|
###########################
|
||||||
|
|
||||||
|
FROM php:${PHP_VER}-apache-bookworm AS apache-base
|
||||||
|
ARG TIMEZONE
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y \
|
||||||
|
bash \
|
||||||
|
haveged \
|
||||||
|
libicu72 \
|
||||||
|
libpng16-16 \
|
||||||
|
libzip4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libfreetype6 && \
|
||||||
|
echo "Listen 8001" > /etc/apache2/ports.conf && \
|
||||||
|
a2enmod rewrite && \
|
||||||
|
touch /use_apache
|
||||||
|
|
||||||
|
EXPOSE 8001
|
||||||
|
|
||||||
|
HEALTHCHECK --interval=20s --timeout=10s --retries=3 \
|
||||||
|
CMD curl -f http://127.0.0.1:8001 || exit 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# global base build
|
||||||
|
###########################
|
||||||
|
|
||||||
|
FROM ${BASE}-base AS base
|
||||||
|
ARG TIMEZONE
|
||||||
|
|
||||||
|
LABEL maintainer="tobias@neontribe.co.uk"
|
||||||
|
|
||||||
|
ENV TIMEZONE=${TIMEZONE}
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && echo ${TIMEZONE} > /etc/timezone && \
|
||||||
|
# make composer home dir
|
||||||
|
mkdir /composer && \
|
||||||
|
chown -R www-data:www-data /composer && \
|
||||||
|
echo "echo -e This imnage is not intended to be used stand alone. It's a base image\necho for the Kimai project. https://www.kimai.org\n" > /entrypoint.sh && \
|
||||||
|
chmod 777 /entrypoint.sh
|
||||||
|
# copy composer
|
||||||
|
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
||||||
|
|
||||||
|
# copy php extensions
|
||||||
|
|
||||||
|
# PHP extension xsl
|
||||||
|
COPY --from=php-ext-xsl /usr/local/etc/php/conf.d/docker-php-ext-xsl.ini /usr/local/etc/php/conf.d/docker-php-ext-xsl.ini
|
||||||
|
COPY --from=php-ext-xsl /usr/local/lib/php/extensions/no-debug-non-zts-20220829/xsl.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/xsl.so
|
||||||
|
# PHP extension pdo_mysql
|
||||||
|
COPY --from=php-ext-pdo_mysql /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini
|
||||||
|
COPY --from=php-ext-pdo_mysql /usr/local/lib/php/extensions/no-debug-non-zts-20220829/pdo_mysql.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/pdo_mysql.so
|
||||||
|
# PHP extension zip
|
||||||
|
COPY --from=php-ext-zip /usr/local/etc/php/conf.d/docker-php-ext-zip.ini /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
|
||||||
|
COPY --from=php-ext-zip /usr/local/lib/php/extensions/no-debug-non-zts-20220829/zip.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/zip.so
|
||||||
|
# PHP extension ldap
|
||||||
|
COPY --from=php-ext-ldap /usr/local/etc/php/conf.d/docker-php-ext-ldap.ini /usr/local/etc/php/conf.d/docker-php-ext-ldap.ini
|
||||||
|
COPY --from=php-ext-ldap /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ldap.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ldap.so
|
||||||
|
# PHP extension gd
|
||||||
|
COPY --from=php-ext-gd /usr/local/etc/php/conf.d/docker-php-ext-gd.ini /usr/local/etc/php/conf.d/docker-php-ext-gd.ini
|
||||||
|
COPY --from=php-ext-gd /usr/local/lib/php/extensions/no-debug-non-zts-20220829/gd.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/gd.so
|
||||||
|
# PHP extension intl
|
||||||
|
COPY --from=php-ext-intl /usr/local/etc/php/conf.d/docker-php-ext-intl.ini /usr/local/etc/php/conf.d/docker-php-ext-intl.ini
|
||||||
|
COPY --from=php-ext-intl /usr/local/lib/php/extensions/no-debug-non-zts-20220829/intl.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/intl.so
|
||||||
|
# PHP extension redis
|
||||||
|
COPY --from=php-ext-redis /usr/local/etc/php/conf.d/docker-php-ext-redis.ini /usr/local/etc/php/conf.d/docker-php-ext-redis.ini
|
||||||
|
COPY --from=php-ext-redis /usr/local/lib/php/extensions/no-debug-non-zts-20220829/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/redis.so
|
||||||
|
COPY --from=php-ext-opcache /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
|
||||||
|
|
||||||
|
CMD [ "/entrypoint.sh" ]
|
||||||
|
|
||||||
|
# docker build -t kimai/kimai-base:fpm --build-arg BASE=fpm .
|
||||||
|
# docker build -t kimai/kimai-base:apache --build-arg BASE=apache .
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
if [ -z "$DATABASE_URL" ]; then
|
|
||||||
DATABASE_URL="mysql://kimai:kimai@127.0.0.1:3306/kimai?charset=utf8mb4&serverVersion=5.7.40"
|
|
||||||
fi
|
|
||||||
|
|
||||||
/opt/kimai/bin/console kimai:version
|
|
||||||
if [ $? != 0 ]; then
|
|
||||||
echo "PHP/Kimai not responding"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Test FPM CGI
|
|
||||||
if [ -f /use_fpm ]; then
|
|
||||||
echo Testing FPM
|
|
||||||
php-fpm -t
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Test Apache/httpd
|
|
||||||
if [ -f /use_apache ]; then
|
|
||||||
echo Testing Apache
|
|
||||||
apache2ctl -t
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
43
.github/workflows/docker-base.yaml
vendored
Normal file
43
.github/workflows/docker-base.yaml
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
name: 'Docker Build'
|
||||||
|
# act -j build -W ./.github/workflows/docker-base.yaml --secret-file .dockerhub.secrets
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 4 5 * *" # build on the 5th of every month
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
server: [ fpm, apache ]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{secrets.DOCKERHUB_USERNAME}}
|
||||||
|
password: ${{secrets.DOCKERHUB_PASSWORD}}
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
uses: docker/build-push-action@v4
|
||||||
|
with:
|
||||||
|
context: .docker
|
||||||
|
file: .docker/Dockerfile.kimai-base
|
||||||
|
build-args: |
|
||||||
|
TIMEZONE=Europe/London
|
||||||
|
BASE=${{ matrix.server }}
|
||||||
|
platforms: linux/amd64,linux/arm64 #,linux/arm/v8,linux/arm/v7,linux/arm/v6
|
||||||
|
tags: |
|
||||||
|
kimai/kimai-base:${{ matrix.server }}
|
||||||
|
push: true
|
||||||
|
|
||||||
|
|
||||||
2
.github/workflows/docker.yaml
vendored
2
.github/workflows/docker.yaml
vendored
@@ -49,8 +49,6 @@ jobs:
|
|||||||
kimai/kimai2:${{ matrix.server }}-${{ matrix.type }}
|
kimai/kimai2:${{ matrix.server }}-${{ matrix.type }}
|
||||||
kimai/kimai2:${{ matrix.server }}-${{ env.kimai_version }}-${{ matrix.type }}
|
kimai/kimai2:${{ matrix.server }}-${{ env.kimai_version }}-${{ matrix.type }}
|
||||||
push: true
|
push: true
|
||||||
- name: Test Lite
|
|
||||||
run: docker run --rm --entrypoint /assets/test-lite.sh kimai/kimai2:${{ matrix.server }}-${{ matrix.type }}
|
|
||||||
|
|
||||||
tag:
|
tag:
|
||||||
needs: build
|
needs: build
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -59,4 +59,6 @@
|
|||||||
npm-debug.log
|
npm-debug.log
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
###< symfony/webpack-encore-bundle ###
|
###< symfony/webpack-encore-bundle ###
|
||||||
/nbproject/*
|
/nbproject/*
|
||||||
|
|
||||||
|
.dockerhub.secrets
|
||||||
|
|||||||
189
Dockerfile
189
Dockerfile
@@ -28,164 +28,16 @@ RUN apk add --no-cache git && \
|
|||||||
|
|
||||||
# production kimai source
|
# production kimai source
|
||||||
FROM git-dev AS git-prod
|
FROM git-dev AS git-prod
|
||||||
|
|
||||||
WORKDIR /opt/kimai
|
WORKDIR /opt/kimai
|
||||||
RUN rm -r tests
|
RUN rm -r tests
|
||||||
|
|
||||||
# composer base image
|
|
||||||
FROM composer:${COMPOSER_VER} AS composer
|
|
||||||
|
|
||||||
###########################
|
# FPM base
|
||||||
# PHP extensions
|
FROM kimai/kimai-base:fpm as fpm-base
|
||||||
###########################
|
|
||||||
|
|
||||||
#fpm alpine php extension base
|
# Apache base
|
||||||
FROM php:${PHP_VER}-fpm-alpine AS fpm-php-ext-base
|
FROM kimai/kimai-base:apache as apache-base
|
||||||
RUN apk add --no-cache \
|
|
||||||
# build-tools
|
|
||||||
autoconf \
|
|
||||||
dpkg \
|
|
||||||
dpkg-dev \
|
|
||||||
file \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
icu-dev \
|
|
||||||
libatomic \
|
|
||||||
libc-dev \
|
|
||||||
libgomp \
|
|
||||||
libmagic \
|
|
||||||
m4 \
|
|
||||||
make \
|
|
||||||
mpc1 \
|
|
||||||
mpfr4 \
|
|
||||||
musl-dev \
|
|
||||||
perl \
|
|
||||||
re2c \
|
|
||||||
# gd
|
|
||||||
freetype-dev \
|
|
||||||
libpng-dev \
|
|
||||||
# icu
|
|
||||||
icu-dev \
|
|
||||||
icu-data-full \
|
|
||||||
# ldap
|
|
||||||
openldap-dev \
|
|
||||||
libldap \
|
|
||||||
# zip
|
|
||||||
libzip-dev \
|
|
||||||
# xsl
|
|
||||||
libxslt-dev
|
|
||||||
|
|
||||||
|
|
||||||
# apache debian php extension base
|
|
||||||
FROM php:${PHP_VER}-apache-bookworm AS apache-php-ext-base
|
|
||||||
RUN apt-get update
|
|
||||||
RUN apt-get install -y \
|
|
||||||
libldap2-dev \
|
|
||||||
libicu-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libzip-dev \
|
|
||||||
libxslt1-dev \
|
|
||||||
libfreetype6-dev
|
|
||||||
|
|
||||||
|
|
||||||
# php extension gd - 13.86s
|
|
||||||
FROM ${BASE}-php-ext-base AS php-ext-gd
|
|
||||||
RUN docker-php-ext-configure gd \
|
|
||||||
--with-freetype && \
|
|
||||||
docker-php-ext-install -j$(nproc) gd
|
|
||||||
|
|
||||||
# php extension intl : 15.26s
|
|
||||||
FROM ${BASE}-php-ext-base AS php-ext-intl
|
|
||||||
RUN docker-php-ext-install -j$(nproc) intl
|
|
||||||
|
|
||||||
# php extension ldap : 8.45s
|
|
||||||
FROM ${BASE}-php-ext-base AS php-ext-ldap
|
|
||||||
RUN docker-php-ext-configure ldap && \
|
|
||||||
docker-php-ext-install -j$(nproc) ldap
|
|
||||||
|
|
||||||
# php extension pdo_mysql : 6.14s
|
|
||||||
FROM ${BASE}-php-ext-base AS php-ext-pdo_mysql
|
|
||||||
RUN docker-php-ext-install -j$(nproc) pdo_mysql
|
|
||||||
|
|
||||||
# php extension zip : 8.18s
|
|
||||||
FROM ${BASE}-php-ext-base AS php-ext-zip
|
|
||||||
RUN docker-php-ext-install -j$(nproc) zip
|
|
||||||
|
|
||||||
# php extension xsl : ?.?? s
|
|
||||||
FROM ${BASE}-php-ext-base AS php-ext-xsl
|
|
||||||
RUN docker-php-ext-install -j$(nproc) xsl
|
|
||||||
|
|
||||||
# php extension redis
|
|
||||||
FROM ${BASE}-php-ext-base AS php-ext-redis
|
|
||||||
RUN yes no | pecl install redis && \
|
|
||||||
docker-php-ext-enable redis
|
|
||||||
|
|
||||||
# php extension opcache
|
|
||||||
FROM ${BASE}-php-ext-base AS php-ext-opcache
|
|
||||||
RUN docker-php-ext-install -j$(nproc) opcache
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# fpm base build
|
|
||||||
###########################
|
|
||||||
|
|
||||||
# fpm base build
|
|
||||||
FROM php:${PHP_VER}-fpm-alpine AS fpm-base
|
|
||||||
ARG KIMAI
|
|
||||||
ARG TIMEZONE
|
|
||||||
RUN apk add --no-cache \
|
|
||||||
bash \
|
|
||||||
coreutils \
|
|
||||||
freetype \
|
|
||||||
haveged \
|
|
||||||
icu \
|
|
||||||
icu-data-full \
|
|
||||||
libldap \
|
|
||||||
libpng \
|
|
||||||
libzip \
|
|
||||||
libxslt-dev \
|
|
||||||
fcgi \
|
|
||||||
tzdata && \
|
|
||||||
touch /use_fpm
|
|
||||||
|
|
||||||
EXPOSE 9000
|
|
||||||
|
|
||||||
HEALTHCHECK --interval=20s --timeout=10s --retries=3 \
|
|
||||||
CMD \
|
|
||||||
SCRIPT_NAME=/ping \
|
|
||||||
SCRIPT_FILENAME=/ping \
|
|
||||||
REQUEST_METHOD=GET \
|
|
||||||
cgi-fcgi -bind -connect 127.0.0.1:9000 || exit 1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###########################
|
|
||||||
# apache base build
|
|
||||||
###########################
|
|
||||||
|
|
||||||
FROM php:${PHP_VER}-apache-bookworm AS apache-base
|
|
||||||
ARG KIMAI
|
|
||||||
ARG TIMEZONE
|
|
||||||
COPY .docker/000-default.conf /etc/apache2/sites-available/000-default.conf
|
COPY .docker/000-default.conf /etc/apache2/sites-available/000-default.conf
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y \
|
|
||||||
bash \
|
|
||||||
haveged \
|
|
||||||
libicu72 \
|
|
||||||
libldap-common \
|
|
||||||
libpng16-16 \
|
|
||||||
libzip4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libfreetype6 && \
|
|
||||||
echo "Listen 8001" > /etc/apache2/ports.conf && \
|
|
||||||
a2enmod rewrite && \
|
|
||||||
touch /use_apache
|
|
||||||
|
|
||||||
EXPOSE 8001
|
|
||||||
|
|
||||||
HEALTHCHECK --interval=20s --timeout=10s --retries=3 \
|
|
||||||
CMD curl -f http://127.0.0.1:8001 || exit 1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# global base build
|
# global base build
|
||||||
@@ -196,13 +48,11 @@ ARG KIMAI
|
|||||||
ARG TIMEZONE
|
ARG TIMEZONE
|
||||||
|
|
||||||
LABEL maintainer="tobias@neontribe.co.uk"
|
LABEL maintainer="tobias@neontribe.co.uk"
|
||||||
LABEL maintainer="bastian@schroll-software.de"
|
|
||||||
|
|
||||||
ENV KIMAI=${KIMAI}
|
ENV KIMAI=${KIMAI}
|
||||||
ENV TIMEZONE=${TIMEZONE}
|
ENV TIMEZONE=${TIMEZONE}
|
||||||
RUN ln -snf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && echo ${TIMEZONE} > /etc/timezone && \
|
RUN ln -snf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && echo ${TIMEZONE} > /etc/timezone && \
|
||||||
# make composer home dir
|
mkdir -p /composer && \
|
||||||
mkdir /composer && \
|
|
||||||
chown -R www-data:www-data /composer
|
chown -R www-data:www-data /composer
|
||||||
|
|
||||||
# copy startup script & DB checking script
|
# copy startup script & DB checking script
|
||||||
@@ -211,34 +61,6 @@ COPY .docker/service.sh /service.sh
|
|||||||
COPY .docker/self-test.sh /self-test.sh
|
COPY .docker/self-test.sh /self-test.sh
|
||||||
COPY .docker/dbtest.php /dbtest.php
|
COPY .docker/dbtest.php /dbtest.php
|
||||||
|
|
||||||
# copy composer
|
|
||||||
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
|
||||||
|
|
||||||
# copy php extensions
|
|
||||||
|
|
||||||
# PHP extension xsl
|
|
||||||
COPY --from=php-ext-xsl /usr/local/etc/php/conf.d/docker-php-ext-xsl.ini /usr/local/etc/php/conf.d/docker-php-ext-xsl.ini
|
|
||||||
COPY --from=php-ext-xsl /usr/local/lib/php/extensions/no-debug-non-zts-20220829/xsl.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/xsl.so
|
|
||||||
# PHP extension pdo_mysql
|
|
||||||
COPY --from=php-ext-pdo_mysql /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini
|
|
||||||
COPY --from=php-ext-pdo_mysql /usr/local/lib/php/extensions/no-debug-non-zts-20220829/pdo_mysql.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/pdo_mysql.so
|
|
||||||
# PHP extension zip
|
|
||||||
COPY --from=php-ext-zip /usr/local/etc/php/conf.d/docker-php-ext-zip.ini /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
|
|
||||||
COPY --from=php-ext-zip /usr/local/lib/php/extensions/no-debug-non-zts-20220829/zip.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/zip.so
|
|
||||||
# PHP extension ldap
|
|
||||||
COPY --from=php-ext-ldap /usr/local/etc/php/conf.d/docker-php-ext-ldap.ini /usr/local/etc/php/conf.d/docker-php-ext-ldap.ini
|
|
||||||
COPY --from=php-ext-ldap /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ldap.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/ldap.so
|
|
||||||
# PHP extension gd
|
|
||||||
COPY --from=php-ext-gd /usr/local/etc/php/conf.d/docker-php-ext-gd.ini /usr/local/etc/php/conf.d/docker-php-ext-gd.ini
|
|
||||||
COPY --from=php-ext-gd /usr/local/lib/php/extensions/no-debug-non-zts-20220829/gd.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/gd.so
|
|
||||||
# PHP extension intl
|
|
||||||
COPY --from=php-ext-intl /usr/local/etc/php/conf.d/docker-php-ext-intl.ini /usr/local/etc/php/conf.d/docker-php-ext-intl.ini
|
|
||||||
COPY --from=php-ext-intl /usr/local/lib/php/extensions/no-debug-non-zts-20220829/intl.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/intl.so
|
|
||||||
# PHP extension redis
|
|
||||||
COPY --from=php-ext-redis /usr/local/etc/php/conf.d/docker-php-ext-redis.ini /usr/local/etc/php/conf.d/docker-php-ext-redis.ini
|
|
||||||
COPY --from=php-ext-redis /usr/local/lib/php/extensions/no-debug-non-zts-20220829/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20220829/redis.so
|
|
||||||
COPY --from=php-ext-opcache /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
|
|
||||||
|
|
||||||
ENV DATABASE_URL="mysql://kimai:kimai@127.0.0.1:3306/kimai?charset=utf8mb4&serverVersion=5.7.40"
|
ENV DATABASE_URL="mysql://kimai:kimai@127.0.0.1:3306/kimai?charset=utf8mb4&serverVersion=5.7.40"
|
||||||
ENV APP_SECRET=change_this_to_something_unique
|
ENV APP_SECRET=change_this_to_something_unique
|
||||||
# The default container name for nginx is nginx
|
# The default container name for nginx is nginx
|
||||||
@@ -266,7 +88,6 @@ VOLUME [ "/opt/kimai/var" ]
|
|||||||
CMD [ "/startup.sh" ]
|
CMD [ "/startup.sh" ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# final builds
|
# final builds
|
||||||
###########################
|
###########################
|
||||||
|
|||||||
Reference in New Issue
Block a user