Compare commits

...

6 Commits

Author SHA1 Message Date
Lee
f9622e8081 Merge pull request 'Update depends' (#8) from development into master
All checks were successful
Publish Docker Image / docker (push) Successful in 58s
Reviewed-on: #8
2023-10-13 18:51:48 +00:00
75bd2407b9 add build steps to make the final image smaller
All checks were successful
Publish Docker Image / docker (push) Successful in 59s
2023-10-13 19:48:48 +01:00
19ac61425c fix a silly
All checks were successful
Publish Docker Image / docker (push) Successful in 1m31s
2023-10-13 19:45:43 +01:00
f342efdabf fix default nginx page from showing
Some checks failed
Publish Docker Image / docker (push) Failing after 24s
2023-10-13 19:44:24 +01:00
fd60603728 build nginx from source to use latest version
All checks were successful
Publish Docker Image / docker (push) Successful in 1m30s
2023-10-13 19:38:54 +01:00
9becfcc03c bump alpine
All checks were successful
Publish Docker Image / docker (push) Successful in 33s
2023-10-13 19:32:09 +01:00
2 changed files with 35 additions and 7 deletions

@ -1,10 +1,21 @@
FROM alpine:3.18.2 # Stage 1: Build Nginx
FROM alpine:3.18.4 as builder
# Install dependencies # Install build dependencies and required tools
RUN apk update && \ RUN apk update && apk upgrade && \
apk upgrade && \ apk add --no-cache php81 php81-fpm php81-gd build-base pcre-dev openssl-dev zlib-dev linux-headers
apk add --no-cache nginx php81 php81-fpm php81-gd && \
rm -rf /var/cache/apk/* # Download and build the latest version of Nginx from source
WORKDIR /tmp
RUN wget https://nginx.org/download/nginx-1.25.2.tar.gz
RUN tar -xzvf nginx-1.25.2.tar.gz
WORKDIR /tmp/nginx-1.25.2
RUN ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/etc/nginx/nginx.conf
RUN make
RUN make install
# Cleanup unnecessary files
RUN rm -rf /tmp/*
# Set up nginx # Set up nginx
COPY ./docker/nginx.conf /etc/nginx/nginx.conf COPY ./docker/nginx.conf /etc/nginx/nginx.conf
@ -13,5 +24,22 @@ COPY ./docker/nginx.conf /etc/nginx/nginx.conf
COPY ./upload.php /tmp/upload.php COPY ./upload.php /tmp/upload.php
COPY ./docker/start.sh /start.sh COPY ./docker/start.sh /start.sh
# Stage 2: Create a smaller image
FROM alpine:3.18.4
# Copy Nginx and PHP-FPM binaries and configurations from the builder stage
COPY --from=builder /usr/local/nginx /usr/local/nginx
COPY --from=builder /etc/nginx /etc/nginx
COPY --from=builder /etc/php81 /etc/php81
COPY --from=builder /tmp/upload.php /tmp/upload.php
COPY --from=builder /start.sh /start.sh
# Install runtime dependencies
RUN apk update && apk upgrade && \
apk add --no-cache php81 php81-fpm php81-gd
# Cleanup unnecessary files
RUN rm -rf /var/cache/apk/*
# Start server # Start server
CMD ["sh", "/start.sh"] CMD ["sh", "/start.sh"]

@ -41,7 +41,7 @@ function start() {
echo "Starting PHP & Nginx" echo "Starting PHP & Nginx"
php-fpm81 && php-fpm81 &&
chmod 777 /run/php/php.sock && chmod 777 /run/php/php.sock &&
nginx -g 'daemon off;' /usr/local/sbin/nginx -g 'daemon off;'
} }
# Start Nginx and retry if it fails # Start Nginx and retry if it fails