Files
cpo_test/docker/Dockerfile
din9xtr 6d721dba79 feat: add cron scheduling and update services
- 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
2026-02-08 00:15:35 +07:00

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}