- Added go-crond library to Dockerfile for task scheduling - Created schedule service in compose.yaml with go-crond - Added cron configuration file: docker/cron/laravel - Updated README.md - Improved service configurations with health checks - Switched to base frankenphp image
45 lines
1.1 KiB
Docker
45 lines
1.1 KiB
Docker
FROM dunglas/frankenphp:php8.5-alpine
|
|
|
|
ARG USER_ID=1000
|
|
ARG GROUP_ID=1000
|
|
ARG USER_NAME=appuser
|
|
|
|
RUN install-php-extensions \
|
|
pdo_pgsql \
|
|
pgsql
|
|
|
|
RUN apk add --no-cache \
|
|
git \
|
|
dcron \
|
|
curl \
|
|
bash
|
|
|
|
RUN GOCROND_VERSION=22.9.1 \
|
|
GOCRON_OS=linux \
|
|
GOCRON_ARCH=amd64 \
|
|
&& wget -O /usr/local/bin/go-crond \
|
|
https://github.com/webdevops/go-crond/releases/download/${GOCROND_VERSION}/go-crond.${GOCRON_OS}.${GOCRON_ARCH} \
|
|
&& chmod +x /usr/local/bin/go-crond
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
RUN addgroup -g ${GROUP_ID} ${USER_NAME} && \
|
|
adduser -u ${USER_ID} -D -S -G ${USER_NAME} ${USER_NAME}
|
|
|
|
RUN setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/frankenphp
|
|
|
|
RUN mkdir -p /data/caddy /config/caddy && \
|
|
chown -R ${USER_NAME}:${USER_NAME} /data /config && \
|
|
chmod -R 755 /data /config
|
|
|
|
WORKDIR /var/www
|
|
|
|
COPY --chown=${USER_NAME}:${USER_NAME} laravel/ /var/www/
|
|
|
|
RUN chown -R ${USER_NAME}:${USER_NAME} /var/www && \
|
|
find /var/www -type f -exec chmod 644 {} \; && \
|
|
find /var/www -type d -exec chmod 755 {} \; && \
|
|
chmod -R 775 /var/www/storage /var/www/bootstrap
|
|
|
|
|
|
USER ${USER_NAME} |