Added fixes
This commit is contained in:
96
Dockerfile
Normal file
96
Dockerfile
Normal file
@@ -0,0 +1,96 @@
|
||||
# Dockerfile for building nginx with hello module on AlmaLinux 9
|
||||
# Build stage
|
||||
FROM almalinux:9 AS builder
|
||||
|
||||
# Install build dependencies
|
||||
RUN dnf -y update && \
|
||||
dnf -y install \
|
||||
gcc \
|
||||
make \
|
||||
wget \
|
||||
tar \
|
||||
openssl-devel \
|
||||
pcre-devel \
|
||||
zlib-devel \
|
||||
git \
|
||||
&& dnf clean all
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the entire project into the image
|
||||
COPY . .
|
||||
|
||||
# Build nginx from source with hello module
|
||||
RUN cd nginx-* && \
|
||||
./configure \
|
||||
--with-compat \
|
||||
--add-dynamic-module=../modules/mod_rewrite \
|
||||
--prefix=/etc/nginx \
|
||||
--sbin-path=/usr/sbin/nginx \
|
||||
--modules-path=/etc/nginx/modules \
|
||||
--conf-path=/etc/nginx/nginx.conf \
|
||||
--error-log-path=/var/log/nginx/error.log \
|
||||
--http-log-path=/var/log/nginx/access.log \
|
||||
--pid-path=/var/run/nginx.pid \
|
||||
--lock-path=/var/run/nginx.lock \
|
||||
--http-client-body-temp-path=/var/lib/nginx/body \
|
||||
--http-proxy-temp-path=/var/lib/nginx/proxy \
|
||||
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
|
||||
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
|
||||
--http-scgi-temp-path=/var/lib/nginx/scgi \
|
||||
--with-http_ssl_module \
|
||||
--with-http_v2_module \
|
||||
--with-http_realip_module \
|
||||
--with-http_gzip_static_module \
|
||||
--with-http_stub_status_module \
|
||||
--with-http_slice_module \
|
||||
--with-http_dav_module \
|
||||
--with-http_auth_request_module \
|
||||
--with-http_secure_link_module \
|
||||
--with-stream \
|
||||
--with-stream_ssl_module \
|
||||
--with-stream_realip_module \
|
||||
--with-stream_ssl_preread_module \
|
||||
--with-pcre-jit && \
|
||||
make modules && \
|
||||
make install
|
||||
|
||||
|
||||
# Runtime stage
|
||||
FROM almalinux:9
|
||||
|
||||
# Install runtime dependencies
|
||||
RUN dnf -y update && \
|
||||
dnf -y install \
|
||||
openssl \
|
||||
pcre \
|
||||
zlib \
|
||||
&& dnf clean all
|
||||
|
||||
# Copy nginx binary and modules from builder
|
||||
COPY --from=builder /usr/sbin/nginx /usr/sbin/nginx
|
||||
COPY --from=builder /etc/nginx /etc/nginx
|
||||
COPY --from=builder /etc/nginx/modules /etc/nginx/modules
|
||||
RUN mkdir -p /etc/nginx/modules
|
||||
RUN mkdir -p /var/lib/nginx/body /var/lib/nginx/proxy /var/lib/nginx/fastcgi /var/lib/nginx/uwsgi /var/lib/nginx/scgi
|
||||
RUN mkdir -p /tmp/test_nginx_root
|
||||
RUN echo "helo" > /tmp/test_nginx_root/index.html
|
||||
COPY --from=builder /var/log/nginx /var/log/nginx
|
||||
COPY --from=builder /var/run /var/run
|
||||
RUN mkdir -p /tmp/test_nginx_root2
|
||||
ADD cms/simple/* /tmp/test_nginx_root2/
|
||||
|
||||
# Expose default nginx port
|
||||
EXPOSE 80
|
||||
EXPOSE 443
|
||||
EXPOSE 8081
|
||||
|
||||
|
||||
|
||||
# Create a non-root user to run nginx
|
||||
RUN useradd -r -d /var/www nginx && \
|
||||
chown -R nginx:nginx /etc/nginx /var/log/nginx /var/run
|
||||
|
||||
# Set entrypoint to run nginx
|
||||
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]
|
||||
Reference in New Issue
Block a user