openpanel/services/proxy/Dockerfile
2024-11-12 20:04:33 +01:00

48 lines
1.7 KiB
Docker

# Use a base image for Rocky Linux
FROM rockylinux:9.3
# Environment variables
ENV DOMAIN openpanel.org
ENV PREVIEW_DOMAIN preview.openpanel.org
# Update system and install necessary tools
RUN dnf update -y && \
dnf install -y 'dnf-command(copr)' && \
dnf copr enable @caddy/caddy -y && \
dnf install -y cronie caddy php php-fpm php-cli php-common
# Copy files
COPY html /var/www/html
COPY delete_cron.sh /var/www/delete_cron.sh
COPY caddy/fullchain.pem /etc/caddy/certs/fullchain.pem
COPY caddy/privkey.pem /etc/caddy/certs/privkey.pem
COPY caddy/Caddyfile /etc/caddy/Caddyfile
# order is important!
RUN find /var/www/html -type f -exec sed -i "s/preview.openpanel.org/$PREVIEW_DOMAIN/g" {} + && \
find /etc/caddy/Caddyfile -type f -exec sed -i "s/preview.openpanel.org/$PREVIEW_DOMAIN/g" {} + && \
find /var/www/html -type f -exec sed -i "s/openpanel.org/$DOMAIN/g" {} + && \
find /etc/caddy/Caddyfile -type f -exec sed -i "s/openpanel.org/$DOMAIN/g" {} +
# Set up permissions
RUN chown -R caddy:caddy /var/www/html && \
chmod -R 755 /var/www/html/domains && \
chmod +x /var/www/delete_cron.sh && \
usermod -aG caddy caddy && \
#####chown caddy:caddy /run/php-fpm/www.sock && \
sed -i 's/^user = .*/user = caddy/' /etc/php-fpm.d/www.conf && \
sed -i 's/^group = .*/group = caddy/' /etc/php-fpm.d/www.conf
# Enable and start services
RUN systemctl enable crond && \
echo "*/5 * * * * bash /var/www/delete_cron.sh" | crontab -
# Cron setup
RUN echo "*/5 * * * * bash /var/www/delete_cron.sh" | crontab -
# Expose necessary ports for Caddy
EXPOSE 80 443
# Run services
CMD ["sh", "-c", "php-fpm && caddy run --config /etc/caddy/Caddyfile --adapter caddyfile"]