This commit is contained in:
42
Dockerfile
Normal file
42
Dockerfile
Normal file
@ -0,0 +1,42 @@
|
||||
# Stage 1: Build Nginx from source
|
||||
FROM alpine:latest AS build
|
||||
|
||||
# Install build tools and dependencies
|
||||
RUN apk update && apk upgrade
|
||||
RUN apk add build-base wget pcre-dev zlib-dev git
|
||||
|
||||
# Download Nginx source code
|
||||
WORKDIR /tmp
|
||||
RUN wget http://nginx.org/download/nginx-1.25.3.tar.gz
|
||||
RUN tar -zxvf nginx-*.tar.gz
|
||||
|
||||
RUN git clone git clone https://github.com/aperezdc/ngx-fancyindex.git ngx-fancyindex
|
||||
|
||||
# Build Nginx from source
|
||||
WORKDIR /tmp/nginx-*
|
||||
RUN ./configure --prefix=/usr/local/nginx \
|
||||
--sbin-path=/usr/local/sbin/nginx \
|
||||
--conf-path=/etc/nginx/nginx.conf \
|
||||
--error-log-path=/var/log/nginx/error.log \
|
||||
--http-log-path=/var/log/nginx/access.log \
|
||||
--with-http_ssl_module \
|
||||
--add-module=../ngx-fancyindex
|
||||
|
||||
RUN make
|
||||
RUN make install
|
||||
|
||||
# Stage 2: Create a minimal runtime image
|
||||
FROM alpine:latest
|
||||
|
||||
# Copy Nginx binary and configuration from the build stage
|
||||
COPY --from=build /usr/local/nginx /usr/local/nginx
|
||||
COPY --from=build /etc/nginx /etc/nginx
|
||||
|
||||
# Copy custom Nginx configuration
|
||||
COPY ./docker/nginx.conf /etc/nginx/nginx.conf
|
||||
|
||||
# Expose the default HTTP port
|
||||
EXPOSE 80
|
||||
|
||||
# Start Nginx when the container runs
|
||||
CMD ["/usr/local/sbin/nginx", "-g", "daemon off;"]
|
Reference in New Issue
Block a user