Create Dockerfile

This commit is contained in:
Stefan Pejcic 2024-11-12 19:36:25 +01:00 committed by GitHub
parent bc7f4186cf
commit 43c37e9720
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

47
services/proxy/Dockerfile Normal file
View File

@ -0,0 +1,47 @@
# Use a base image for Rocky Linux
FROM rockylinux:9.4
# 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 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 www-data caddy && \
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 caddy && systemctl enable php-fpm
# 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"]