mirror of
https://github.com/stefanpejcic/openpanel
synced 2025-06-26 18:28:26 +00:00
48 lines
1.7 KiB
Docker
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"]
|