Categories
DevOps

How to use multi-stage build to compile an application

Use Docker or Pod Manager multi-stage build to compile Nginx from source code with additional headers-more-nginx-module module using Debian Bullseye image.

The idea is quite simple. The first step is to download source code. The second step is use source code regardless of the used revision control system to build an application and divert installation to different directory. The third step is to copy compiled application, define permissions, and perform initial container configuration.

The Dockerfile introducing this plan.

# first step
FROM debian:bullseye

## create builder user
RUN groupadd --gid 999 builder \
 && useradd --uid 999 --gid 999 builder

## install revision control system
RUN apt-get update \
 && apt-get install --yes git

## create sources directory
RUN install --directory --mode 0755 --owner builder --group builder /opt/sources

## switch to user builder
USER builder

## change working directory
WORKDIR /opt/sources

## download source code
RUN git clone --depth 1 --branch branches/stable-1.20 https://github.com/nginx/nginx.git
RUN git clone --depth 1 --branch master               https://github.com/openresty/headers-more-nginx-module.git



# second step
FROM debian:bullseye

## install development utilities and application dependencies
RUN apt-get update \
 && apt-get install --yes build-essential libpcre3-dev libssl-dev zlib1g-dev 

## create builder user
RUN groupadd --gid 999 builder \
 && useradd --uid 999 --gid 999 builder

## copy source code
COPY --from=0 /opt/sources /opt/sources

## create compiled directory
RUN install --directory --mode 0755 --owner builder --group builder /opt/compiled

## switch to user builder
USER builder

## change working directory
WORKDIR /opt/sources/nginx/

## copy configure script
RUN cp auto/configure .

## configure application
RUN ./configure \
                --with-cc-opt="-O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC" \
                --with-ld-opt="-Wl,-z,relro -Wl,-z,now --pie" \
                \
                --prefix=/etc/nginx \
                --sbin-path=/usr/sbin/nginx \
                --modules-path=/usr/lib64/nginx/modules \
                --conf-path=/etc/nginx/nginx.conf \
                \
                --error-log-path=/dev/stderr \
                --http-log-path=/dev/stdout \
                \
                --pid-path=/var/run/nginx/nginx.pid \
                --lock-path=/var/run/nginx/nginx.lock \
                \
                --http-client-body-temp-path=/var/cache/nginx/client_temp \
                --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
                --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
                --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
                --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
                \
                --user=nginx \
                --group=nginx \
                \
                --with-file-aio \
                --with-threads \
                \
                --with-http_ssl_module \
                --with-http_v2_module \
                --with-http_realip_module \
                --with-http_dav_module \
                \
                --add-module=../headers-more-nginx-module

## compile application
RUN make

## install application to temporary directory
RUN make install DESTDIR=/opt/compiled



# third step
FROM debian:bullseye

## create nginx user
RUN groupadd --gid 999 nginx \
 && useradd --uid 999 --gid 999 --no-create-home --home-dir /etc/nginx/html nginx

## copy compiled application
COPY --from=1 --chown=root:root   /opt/compiled/usr /usr
COPY --from=1 --chown=nginx:nginx /opt/compiled/etc /etc

## create temp directories
RUN install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/client_temp  \
 && install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/proxy_temp   \
 && install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/fastcgi_temp \
 && install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/uwsgi_temp   \
 && install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/scgi_temp

## create run-time directory
RUN install --directory --mode 0750 --owner nginx --group nginx /run/nginx

## install utility to set file capabilities
RUN apt-get update && apt install --y libcap2-bin

## allow to bind on port numbers less than 1024
RUN setcap cap_net_bind_service=+ep /usr/sbin/nginx

## switch to nginx user
USER nginx 

## change working directory
WORKDIR /etc/nginx/html

## send SIGQUIT to the container to stop
STOPSIGNAL SIGQUIT

## expose ports
EXPOSE 80/tcp
EXPOSE 443/tcp

## default command
CMD ["nginx", "-g", "daemon off;"]

The build process.

$ podman build . 
STEP 1: FROM debian:bullseye
STEP 2: RUN groupadd --gid 999 builder  && useradd --uid 999 --gid 999 builder
--> Using cache 033f44a7ac3e216768df815c29fed03865e50c4c9c1668de55458e9728175f24
--> 033f44a7ac3
STEP 3: RUN apt-get update  && apt-get install --yes git
--> Using cache 675e34b603ae7b807487d78f181d89500e0c44b485aac0492e430c396f34787f
--> 675e34b603a
STEP 4: RUN install --directory --mode 0755 --owner builder --group builder /opt/sources
--> Using cache e0061559aff1b7663aa19e3181298d4de5a2dc6f15e250bbc8e974196630e8e2
--> e0061559aff
STEP 5: USER builder
--> Using cache 0bfe769508366edd3d3cd9ff4ba461a2b7b55dcfaf5ccbbc249b9197b21b072c
--> 0bfe7695083
STEP 6: WORKDIR /opt/sources
--> Using cache f8c913c75b699add75c07d7bff32e8831b2c8cdc44ccf58dcc22ce3d138dabe1
--> f8c913c75b6
STEP 7: RUN git clone --depth 1 --branch branches/stable-1.20 https://github.com/nginx/nginx.git
--> Using cache 1c300f93b4bcd1e2dc6cfa224b73fc27a4fafba0ef4ecea14ffe27ec5e5a2c0d
--> 1c300f93b4b
STEP 8: RUN git clone --depth 1 --branch master               https://github.com/openresty/headers-more-nginx-module.git
--> Using cache 52df9b37420b4653a5763c17ee4c5ed5bd07cfaff9e85d0813837f1a43bc6969
--> 52df9b37420
STEP 9: FROM debian:bullseye
STEP 10: RUN apt-get update  && apt-get install --yes build-essential libpcre3-dev libssl-dev zlib1g-dev 
--> Using cache 46b3ad69eba5776710a194de262fad07cc4cedcf6d447e671e2c35401e1dc63e
--> 46b3ad69eba
STEP 11: RUN groupadd --gid 999 builder  && useradd --uid 999 --gid 999 builder
--> Using cache cc2e17d7dfde0ed24be80a0db83aefef5c059c17429e82820f9d9cb5f4e2550d
--> cc2e17d7dfd
STEP 12: COPY --from=0 /opt/sources /opt/sources
--> Using cache 2f41d6f24fadd96be4a4daeafb0b2db952091562c7f3aadb897d3769da04b5c4
--> 2f41d6f24fa
STEP 13: RUN install --directory --mode 0755 --owner builder --group builder /opt/compiled
--> Using cache 130382bc2ea7c0a38cb9f647e2b03f961bdb7d2c373846a4735dd773543ba1ff
--> 130382bc2ea
STEP 14: USER builder
--> Using cache faf70902e72a68989422ae3ba5bcec56ded98dd793cf04f5fcadd12961d9bf05
--> faf70902e72
STEP 15: WORKDIR /opt/sources/nginx/
--> Using cache 2c1fc31b57bd846332c844baac8591b8d2b1ef11f6f7bee95f9a11dd92324927
--> 2c1fc31b57b
STEP 16: RUN cp auto/configure .
--> Using cache 87e6e15d823e4ed0c43526a71ea3734ab96ebbe9bed3473ac5bede6163ce3021
--> 87e6e15d823
STEP 17: RUN ./configure                 --with-cc-opt="-O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC"                 --with-ld-opt="-Wl,-z,relro -Wl,-z,now --pie"                                 --prefix=/etc/nginx                 --sbin-path=/usr/sbin/nginx                 --modules-path=/usr/lib64/nginx/modules                 --conf-path=/etc/nginx/nginx.conf                                 --error-log-path=/dev/stderr                 --http-log-path=/dev/stdout                                 --pid-path=/var/run/nginx/nginx.pid                 --lock-path=/var/run/nginx/nginx.lock                                 --http-client-body-temp-path=/var/cache/nginx/client_temp                 --http-proxy-temp-path=/var/cache/nginx/proxy_temp                 --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp                 --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp                 --http-scgi-temp-path=/var/cache/nginx/scgi_temp                                 --user=nginx                 --group=nginx                                 --with-file-aio                 --with-threads                                 --with-http_ssl_module                 --with-http_v2_module                 --with-http_realip_module                 --with-http_dav_module                                 --add-module=../headers-more-nginx-module
checking for OS
 + Linux 5.13.0-30-generic x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 10.2.1 20210110 (Debian 10.2.1-6) 
checking for gcc -pipe switch ... found
checking for --with-ld-opt="-Wl,-z,relro -Wl,-z,now --pie" ... found
checking for -Wl,-E switch ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
checking for gcc builtin 64 bit byteswap ... found
checking for unistd.h ... found
checking for inttypes.h ... found
checking for limits.h ... found
checking for sys/filio.h ... not found
checking for sys/param.h ... found
checking for sys/mount.h ... found
checking for sys/statvfs.h ... found
checking for crypt.h ... found
checking for Linux specific features
checking for epoll ... found
checking for EPOLLRDHUP ... found
checking for EPOLLEXCLUSIVE ... found
checking for eventfd() ... found
checking for O_PATH ... found
checking for sendfile() ... found
checking for sendfile64() ... found
checking for sys/prctl.h ... found
checking for prctl(PR_SET_DUMPABLE) ... found
checking for prctl(PR_SET_KEEPCAPS) ... found
checking for capabilities ... found
checking for crypt_r() ... found
checking for sys/vfs.h ... found
checking for poll() ... found
checking for /dev/poll ... not found
checking for kqueue ... not found
checking for crypt() ... not found
checking for crypt() in libcrypt ... found
checking for F_READAHEAD ... not found
checking for posix_fadvise() ... found
checking for O_DIRECT ... found
checking for F_NOCACHE ... not found
checking for directio() ... not found
checking for statfs() ... found
checking for statvfs() ... found
checking for dlopen() ... not found
checking for dlopen() in libdl ... found
checking for sched_yield() ... found
checking for sched_setaffinity() ... found
checking for SO_SETFIB ... not found
checking for SO_REUSEPORT ... found
checking for SO_ACCEPTFILTER ... not found
checking for SO_BINDANY ... not found
checking for IP_TRANSPARENT ... found
checking for IP_BINDANY ... not found
checking for IP_BIND_ADDRESS_NO_PORT ... found
checking for IP_RECVDSTADDR ... not found
checking for IP_SENDSRCADDR ... not found
checking for IP_PKTINFO ... found
checking for IPV6_RECVPKTINFO ... found
checking for TCP_DEFER_ACCEPT ... found
checking for TCP_KEEPIDLE ... found
checking for TCP_FASTOPEN ... found
checking for TCP_INFO ... found
checking for accept4() ... found
checking for kqueue AIO support ... not found
checking for Linux AIO support ... found
checking for int size ... 4 bytes
checking for long size ... 8 bytes
checking for long long size ... 8 bytes
checking for void * size ... 8 bytes
checking for uint32_t ... found
checking for uint64_t ... found
checking for sig_atomic_t ... found
checking for sig_atomic_t size ... 4 bytes
checking for socklen_t ... found
checking for in_addr_t ... found
checking for in_port_t ... found
checking for rlim_t ... found
checking for uintptr_t ... uintptr_t found
checking for system byte ordering ... little endian
checking for size_t size ... 8 bytes
checking for off_t size ... 8 bytes
checking for time_t size ... 8 bytes
checking for AF_INET6 ... found
checking for setproctitle() ... not found
checking for pread() ... found
checking for pwrite() ... found
checking for pwritev() ... found
checking for strerrordesc_np() ... not found
checking for sys_nerr ... found
checking for localtime_r() ... found
checking for clock_gettime(CLOCK_MONOTONIC) ... found
checking for posix_memalign() ... found
checking for memalign() ... found
checking for mmap(MAP_ANON|MAP_SHARED) ... found
checking for mmap("/dev/zero", MAP_SHARED) ... found
checking for System V shared memory ... found
checking for POSIX semaphores ... not found
checking for POSIX semaphores in libpthread ... found
checking for struct msghdr.msg_control ... found
checking for ioctl(FIONBIO) ... found
checking for ioctl(FIONREAD) ... found
checking for struct tm.tm_gmtoff ... found
checking for struct dirent.d_namlen ... not found
checking for struct dirent.d_type ... found
checking for sysconf(_SC_NPROCESSORS_ONLN) ... found
checking for sysconf(_SC_LEVEL1_DCACHE_LINESIZE) ... found
checking for openat(), fstatat() ... found
checking for getaddrinfo() ... found
configuring additional modules
adding module in ../headers-more-nginx-module
 + ngx_http_headers_more_filter_module was configured
checking for PCRE library ... found
checking for PCRE JIT support ... found
checking for OpenSSL library ... found
checking for zlib library ... found
creating objs/Makefile

Configuration summary
  + using threads
  + using system PCRE library
  + using system OpenSSL library
  + using system zlib library

  nginx path prefix: "/etc/nginx"
  nginx binary file: "/usr/sbin/nginx"
  nginx modules path: "/usr/lib64/nginx/modules"
  nginx configuration prefix: "/etc/nginx"
  nginx configuration file: "/etc/nginx/nginx.conf"
  nginx pid file: "/var/run/nginx/nginx.pid"
  nginx error log file: "/dev/stderr"
  nginx http access log file: "/dev/stdout"
  nginx http client request body temporary files: "/var/cache/nginx/client_temp"
  nginx http proxy temporary files: "/var/cache/nginx/proxy_temp"
  nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp"
  nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp"
  nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"

--> 4ee4617a85b
STEP 18: RUN make
make -f objs/Makefile
make[1]: Entering directory '/opt/sources/nginx'
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/nginx.o \
	src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_log.o \
	src/core/ngx_log.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_palloc.o \
	src/core/ngx_palloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_array.o \
	src/core/ngx_array.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_list.o \
	src/core/ngx_list.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_hash.o \
	src/core/ngx_hash.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_buf.o \
	src/core/ngx_buf.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_queue.o \
	src/core/ngx_queue.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_output_chain.o \
	src/core/ngx_output_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_string.o \
	src/core/ngx_string.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_parse.o \
	src/core/ngx_parse.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_parse_time.o \
	src/core/ngx_parse_time.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_inet.o \
	src/core/ngx_inet.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_file.o \
	src/core/ngx_file.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_crc32.o \
	src/core/ngx_crc32.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_murmurhash.o \
	src/core/ngx_murmurhash.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_md5.o \
	src/core/ngx_md5.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_sha1.o \
	src/core/ngx_sha1.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_rbtree.o \
	src/core/ngx_rbtree.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_radix_tree.o \
	src/core/ngx_radix_tree.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_slab.o \
	src/core/ngx_slab.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_times.o \
	src/core/ngx_times.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_shmtx.o \
	src/core/ngx_shmtx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_connection.o \
	src/core/ngx_connection.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_cycle.o \
	src/core/ngx_cycle.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_spinlock.o \
	src/core/ngx_spinlock.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_rwlock.o \
	src/core/ngx_rwlock.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_cpuinfo.o \
	src/core/ngx_cpuinfo.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_conf_file.o \
	src/core/ngx_conf_file.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_module.o \
	src/core/ngx_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_resolver.o \
	src/core/ngx_resolver.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_open_file_cache.o \
	src/core/ngx_open_file_cache.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_crypt.o \
	src/core/ngx_crypt.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_proxy_protocol.o \
	src/core/ngx_proxy_protocol.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_syslog.o \
	src/core/ngx_syslog.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event.o \
	src/event/ngx_event.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_timer.o \
	src/event/ngx_event_timer.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_posted.o \
	src/event/ngx_event_posted.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_accept.o \
	src/event/ngx_event_accept.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_udp.o \
	src/event/ngx_event_udp.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_connect.o \
	src/event/ngx_event_connect.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_pipe.o \
	src/event/ngx_event_pipe.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_time.o \
	src/os/unix/ngx_time.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_errno.o \
	src/os/unix/ngx_errno.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_alloc.o \
	src/os/unix/ngx_alloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_files.o \
	src/os/unix/ngx_files.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_socket.o \
	src/os/unix/ngx_socket.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_recv.o \
	src/os/unix/ngx_recv.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_readv_chain.o \
	src/os/unix/ngx_readv_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_udp_recv.o \
	src/os/unix/ngx_udp_recv.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_send.o \
	src/os/unix/ngx_send.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_writev_chain.o \
	src/os/unix/ngx_writev_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_udp_send.o \
	src/os/unix/ngx_udp_send.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_udp_sendmsg_chain.o \
	src/os/unix/ngx_udp_sendmsg_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_channel.o \
	src/os/unix/ngx_channel.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_shmem.o \
	src/os/unix/ngx_shmem.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_process.o \
	src/os/unix/ngx_process.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_daemon.o \
	src/os/unix/ngx_daemon.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_setaffinity.o \
	src/os/unix/ngx_setaffinity.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_setproctitle.o \
	src/os/unix/ngx_setproctitle.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_posix_init.o \
	src/os/unix/ngx_posix_init.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_user.o \
	src/os/unix/ngx_user.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_dlopen.o \
	src/os/unix/ngx_dlopen.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_process_cycle.o \
	src/os/unix/ngx_process_cycle.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_linux_init.o \
	src/os/unix/ngx_linux_init.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/modules/ngx_epoll_module.o \
	src/event/modules/ngx_epoll_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_linux_sendfile_chain.o \
	src/os/unix/ngx_linux_sendfile_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_linux_aio_read.o \
	src/os/unix/ngx_linux_aio_read.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_thread_pool.o \
	src/core/ngx_thread_pool.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_thread_cond.o \
	src/os/unix/ngx_thread_cond.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_thread_mutex.o \
	src/os/unix/ngx_thread_mutex.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/os/unix/ngx_thread_id.o \
	src/os/unix/ngx_thread_id.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_openssl.o \
	src/event/ngx_event_openssl.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/event/ngx_event_openssl_stapling.o \
	src/event/ngx_event_openssl_stapling.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_regex.o \
	src/core/ngx_regex.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http.o \
	src/http/ngx_http.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_core_module.o \
	src/http/ngx_http_core_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_special_response.o \
	src/http/ngx_http_special_response.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_request.o \
	src/http/ngx_http_request.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_parse.o \
	src/http/ngx_http_parse.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_log_module.o \
	src/http/modules/ngx_http_log_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_request_body.o \
	src/http/ngx_http_request_body.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_variables.o \
	src/http/ngx_http_variables.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_script.o \
	src/http/ngx_http_script.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_upstream.o \
	src/http/ngx_http_upstream.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_upstream_round_robin.o \
	src/http/ngx_http_upstream_round_robin.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_file_cache.o \
	src/http/ngx_http_file_cache.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_write_filter_module.o \
	src/http/ngx_http_write_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_header_filter_module.o \
	src/http/ngx_http_header_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_chunked_filter_module.o \
	src/http/modules/ngx_http_chunked_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/v2/ngx_http_v2_filter_module.o \
	src/http/v2/ngx_http_v2_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_range_filter_module.o \
	src/http/modules/ngx_http_range_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_gzip_filter_module.o \
	src/http/modules/ngx_http_gzip_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_postpone_filter_module.o \
	src/http/ngx_http_postpone_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_ssi_filter_module.o \
	src/http/modules/ngx_http_ssi_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_charset_filter_module.o \
	src/http/modules/ngx_http_charset_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_userid_filter_module.o \
	src/http/modules/ngx_http_userid_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_headers_filter_module.o \
	src/http/modules/ngx_http_headers_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/ngx_http_copy_filter_module.o \
	src/http/ngx_http_copy_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_not_modified_filter_module.o \
	src/http/modules/ngx_http_not_modified_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/v2/ngx_http_v2.o \
	src/http/v2/ngx_http_v2.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/v2/ngx_http_v2_table.o \
	src/http/v2/ngx_http_v2_table.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/v2/ngx_http_v2_encode.o \
	src/http/v2/ngx_http_v2_encode.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/v2/ngx_http_v2_huff_decode.o \
	src/http/v2/ngx_http_v2_huff_decode.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/v2/ngx_http_v2_huff_encode.o \
	src/http/v2/ngx_http_v2_huff_encode.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/v2/ngx_http_v2_module.o \
	src/http/v2/ngx_http_v2_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_static_module.o \
	src/http/modules/ngx_http_static_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_dav_module.o \
	src/http/modules/ngx_http_dav_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_autoindex_module.o \
	src/http/modules/ngx_http_autoindex_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_index_module.o \
	src/http/modules/ngx_http_index_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_mirror_module.o \
	src/http/modules/ngx_http_mirror_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_try_files_module.o \
	src/http/modules/ngx_http_try_files_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_auth_basic_module.o \
	src/http/modules/ngx_http_auth_basic_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_access_module.o \
	src/http/modules/ngx_http_access_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_limit_conn_module.o \
	src/http/modules/ngx_http_limit_conn_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_limit_req_module.o \
	src/http/modules/ngx_http_limit_req_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_realip_module.o \
	src/http/modules/ngx_http_realip_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_geo_module.o \
	src/http/modules/ngx_http_geo_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_map_module.o \
	src/http/modules/ngx_http_map_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_split_clients_module.o \
	src/http/modules/ngx_http_split_clients_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_referer_module.o \
	src/http/modules/ngx_http_referer_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_rewrite_module.o \
	src/http/modules/ngx_http_rewrite_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_ssl_module.o \
	src/http/modules/ngx_http_ssl_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_proxy_module.o \
	src/http/modules/ngx_http_proxy_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_fastcgi_module.o \
	src/http/modules/ngx_http_fastcgi_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_uwsgi_module.o \
	src/http/modules/ngx_http_uwsgi_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_scgi_module.o \
	src/http/modules/ngx_http_scgi_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_grpc_module.o \
	src/http/modules/ngx_http_grpc_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_memcached_module.o \
	src/http/modules/ngx_http_memcached_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_empty_gif_module.o \
	src/http/modules/ngx_http_empty_gif_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_browser_module.o \
	src/http/modules/ngx_http_browser_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_upstream_hash_module.o \
	src/http/modules/ngx_http_upstream_hash_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
	src/http/modules/ngx_http_upstream_ip_hash_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
	src/http/modules/ngx_http_upstream_least_conn_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_upstream_random_module.o \
	src/http/modules/ngx_http_upstream_random_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
	src/http/modules/ngx_http_upstream_keepalive_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/src/http/modules/ngx_http_upstream_zone_module.o \
	src/http/modules/ngx_http_upstream_zone_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/addon/src/ngx_http_headers_more_filter_module.o \
	../headers-more-nginx-module/src/ngx_http_headers_more_filter_module.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/addon/src/ngx_http_headers_more_headers_out.o \
	../headers-more-nginx-module/src/ngx_http_headers_more_headers_out.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/addon/src/ngx_http_headers_more_headers_in.o \
	../headers-more-nginx-module/src/ngx_http_headers_more_headers_in.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules -I src/http/v2 \
	-o objs/addon/src/ngx_http_headers_more_util.o \
	../headers-more-nginx-module/src/ngx_http_headers_more_util.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/ngx_modules.o \
	objs/ngx_modules.c
cc -o objs/nginx \
objs/src/core/nginx.o \
objs/src/core/ngx_log.o \
objs/src/core/ngx_palloc.o \
objs/src/core/ngx_array.o \
objs/src/core/ngx_list.o \
objs/src/core/ngx_hash.o \
objs/src/core/ngx_buf.o \
objs/src/core/ngx_queue.o \
objs/src/core/ngx_output_chain.o \
objs/src/core/ngx_string.o \
objs/src/core/ngx_parse.o \
objs/src/core/ngx_parse_time.o \
objs/src/core/ngx_inet.o \
objs/src/core/ngx_file.o \
objs/src/core/ngx_crc32.o \
objs/src/core/ngx_murmurhash.o \
objs/src/core/ngx_md5.o \
objs/src/core/ngx_sha1.o \
objs/src/core/ngx_rbtree.o \
objs/src/core/ngx_radix_tree.o \
objs/src/core/ngx_slab.o \
objs/src/core/ngx_times.o \
objs/src/core/ngx_shmtx.o \
objs/src/core/ngx_connection.o \
objs/src/core/ngx_cycle.o \
objs/src/core/ngx_spinlock.o \
objs/src/core/ngx_rwlock.o \
objs/src/core/ngx_cpuinfo.o \
objs/src/core/ngx_conf_file.o \
objs/src/core/ngx_module.o \
objs/src/core/ngx_resolver.o \
objs/src/core/ngx_open_file_cache.o \
objs/src/core/ngx_crypt.o \
objs/src/core/ngx_proxy_protocol.o \
objs/src/core/ngx_syslog.o \
objs/src/event/ngx_event.o \
objs/src/event/ngx_event_timer.o \
objs/src/event/ngx_event_posted.o \
objs/src/event/ngx_event_accept.o \
objs/src/event/ngx_event_udp.o \
objs/src/event/ngx_event_connect.o \
objs/src/event/ngx_event_pipe.o \
objs/src/os/unix/ngx_time.o \
objs/src/os/unix/ngx_errno.o \
objs/src/os/unix/ngx_alloc.o \
objs/src/os/unix/ngx_files.o \
objs/src/os/unix/ngx_socket.o \
objs/src/os/unix/ngx_recv.o \
objs/src/os/unix/ngx_readv_chain.o \
objs/src/os/unix/ngx_udp_recv.o \
objs/src/os/unix/ngx_send.o \
objs/src/os/unix/ngx_writev_chain.o \
objs/src/os/unix/ngx_udp_send.o \
objs/src/os/unix/ngx_udp_sendmsg_chain.o \
objs/src/os/unix/ngx_channel.o \
objs/src/os/unix/ngx_shmem.o \
objs/src/os/unix/ngx_process.o \
objs/src/os/unix/ngx_daemon.o \
objs/src/os/unix/ngx_setaffinity.o \
objs/src/os/unix/ngx_setproctitle.o \
objs/src/os/unix/ngx_posix_init.o \
objs/src/os/unix/ngx_user.o \
objs/src/os/unix/ngx_dlopen.o \
objs/src/os/unix/ngx_process_cycle.o \
objs/src/os/unix/ngx_linux_init.o \
objs/src/event/modules/ngx_epoll_module.o \
objs/src/os/unix/ngx_linux_sendfile_chain.o \
objs/src/os/unix/ngx_linux_aio_read.o \
objs/src/core/ngx_thread_pool.o \
objs/src/os/unix/ngx_thread_cond.o \
objs/src/os/unix/ngx_thread_mutex.o \
objs/src/os/unix/ngx_thread_id.o \
objs/src/event/ngx_event_openssl.o \
objs/src/event/ngx_event_openssl_stapling.o \
objs/src/core/ngx_regex.o \
objs/src/http/ngx_http.o \
objs/src/http/ngx_http_core_module.o \
objs/src/http/ngx_http_special_response.o \
objs/src/http/ngx_http_request.o \
objs/src/http/ngx_http_parse.o \
objs/src/http/modules/ngx_http_log_module.o \
objs/src/http/ngx_http_request_body.o \
objs/src/http/ngx_http_variables.o \
objs/src/http/ngx_http_script.o \
objs/src/http/ngx_http_upstream.o \
objs/src/http/ngx_http_upstream_round_robin.o \
objs/src/http/ngx_http_file_cache.o \
objs/src/http/ngx_http_write_filter_module.o \
objs/src/http/ngx_http_header_filter_module.o \
objs/src/http/modules/ngx_http_chunked_filter_module.o \
objs/src/http/v2/ngx_http_v2_filter_module.o \
objs/src/http/modules/ngx_http_range_filter_module.o \
objs/src/http/modules/ngx_http_gzip_filter_module.o \
objs/src/http/ngx_http_postpone_filter_module.o \
objs/src/http/modules/ngx_http_ssi_filter_module.o \
objs/src/http/modules/ngx_http_charset_filter_module.o \
objs/src/http/modules/ngx_http_userid_filter_module.o \
objs/src/http/modules/ngx_http_headers_filter_module.o \
objs/src/http/ngx_http_copy_filter_module.o \
objs/src/http/modules/ngx_http_not_modified_filter_module.o \
objs/src/http/v2/ngx_http_v2.o \
objs/src/http/v2/ngx_http_v2_table.o \
objs/src/http/v2/ngx_http_v2_encode.o \
objs/src/http/v2/ngx_http_v2_huff_decode.o \
objs/src/http/v2/ngx_http_v2_huff_encode.o \
objs/src/http/v2/ngx_http_v2_module.o \
objs/src/http/modules/ngx_http_static_module.o \
objs/src/http/modules/ngx_http_dav_module.o \
objs/src/http/modules/ngx_http_autoindex_module.o \
objs/src/http/modules/ngx_http_index_module.o \
objs/src/http/modules/ngx_http_mirror_module.o \
objs/src/http/modules/ngx_http_try_files_module.o \
objs/src/http/modules/ngx_http_auth_basic_module.o \
objs/src/http/modules/ngx_http_access_module.o \
objs/src/http/modules/ngx_http_limit_conn_module.o \
objs/src/http/modules/ngx_http_limit_req_module.o \
objs/src/http/modules/ngx_http_realip_module.o \
objs/src/http/modules/ngx_http_geo_module.o \
objs/src/http/modules/ngx_http_map_module.o \
objs/src/http/modules/ngx_http_split_clients_module.o \
objs/src/http/modules/ngx_http_referer_module.o \
objs/src/http/modules/ngx_http_rewrite_module.o \
objs/src/http/modules/ngx_http_ssl_module.o \
objs/src/http/modules/ngx_http_proxy_module.o \
objs/src/http/modules/ngx_http_fastcgi_module.o \
objs/src/http/modules/ngx_http_uwsgi_module.o \
objs/src/http/modules/ngx_http_scgi_module.o \
objs/src/http/modules/ngx_http_grpc_module.o \
objs/src/http/modules/ngx_http_memcached_module.o \
objs/src/http/modules/ngx_http_empty_gif_module.o \
objs/src/http/modules/ngx_http_browser_module.o \
objs/src/http/modules/ngx_http_upstream_hash_module.o \
objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
objs/src/http/modules/ngx_http_upstream_random_module.o \
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/src/http/modules/ngx_http_upstream_zone_module.o \
objs/addon/src/ngx_http_headers_more_filter_module.o \
objs/addon/src/ngx_http_headers_more_headers_out.o \
objs/addon/src/ngx_http_headers_more_headers_in.o \
objs/addon/src/ngx_http_headers_more_util.o \
objs/ngx_modules.o \
-Wl,-z,relro -Wl,-z,now --pie -ldl -lpthread -lpthread -lcrypt -lpcre -lssl -lcrypto -ldl -lpthread -lz \
-Wl,-E
sed -e "s|%%PREFIX%%|/etc/nginx|" \
	-e "s|%%PID_PATH%%|/var/run/nginx/nginx.pid|" \
	-e "s|%%CONF_PATH%%|/etc/nginx/nginx.conf|" \
	-e "s|%%ERROR_LOG_PATH%%|/dev/stderr|" \
	< docs/man/nginx.8 > objs/nginx.8
make[1]: Leaving directory '/opt/sources/nginx'
--> 72ddfb5f56b
STEP 19: RUN make install DESTDIR=/opt/compiled
make -f objs/Makefile install
make[1]: Entering directory '/opt/sources/nginx'
test -d '/opt/compiled/etc/nginx' || mkdir -p '/opt/compiled/etc/nginx'
test -d '/opt/compiled/usr/sbin' \
	|| mkdir -p '/opt/compiled/usr/sbin'
test ! -f '/opt/compiled/usr/sbin/nginx' \
	|| mv '/opt/compiled/usr/sbin/nginx' \
		'/opt/compiled/usr/sbin/nginx.old'
cp objs/nginx '/opt/compiled/usr/sbin/nginx'
test -d '/opt/compiled/etc/nginx' \
	|| mkdir -p '/opt/compiled/etc/nginx'
cp conf/koi-win '/opt/compiled/etc/nginx'
cp conf/koi-utf '/opt/compiled/etc/nginx'
cp conf/win-utf '/opt/compiled/etc/nginx'
test -f '/opt/compiled/etc/nginx/mime.types' \
	|| cp conf/mime.types '/opt/compiled/etc/nginx'
cp conf/mime.types '/opt/compiled/etc/nginx/mime.types.default'
test -f '/opt/compiled/etc/nginx/fastcgi_params' \
	|| cp conf/fastcgi_params '/opt/compiled/etc/nginx'
cp conf/fastcgi_params \
	'/opt/compiled/etc/nginx/fastcgi_params.default'
test -f '/opt/compiled/etc/nginx/fastcgi.conf' \
	|| cp conf/fastcgi.conf '/opt/compiled/etc/nginx'
cp conf/fastcgi.conf '/opt/compiled/etc/nginx/fastcgi.conf.default'
test -f '/opt/compiled/etc/nginx/uwsgi_params' \
	|| cp conf/uwsgi_params '/opt/compiled/etc/nginx'
cp conf/uwsgi_params \
	'/opt/compiled/etc/nginx/uwsgi_params.default'
test -f '/opt/compiled/etc/nginx/scgi_params' \
	|| cp conf/scgi_params '/opt/compiled/etc/nginx'
cp conf/scgi_params \
	'/opt/compiled/etc/nginx/scgi_params.default'
test -f '/opt/compiled/etc/nginx/nginx.conf' \
	|| cp conf/nginx.conf '/opt/compiled/etc/nginx/nginx.conf'
cp conf/nginx.conf '/opt/compiled/etc/nginx/nginx.conf.default'
test -d '/opt/compiled/var/run/nginx' \
	|| mkdir -p '/opt/compiled/var/run/nginx'
test -d '/opt/compiled/dev' \
	|| mkdir -p '/opt/compiled/dev'
test -d '/opt/compiled/etc/nginx/html' \
	|| cp -R docs/html '/opt/compiled/etc/nginx'
test -d '/opt/compiled/dev' \
	|| mkdir -p '/opt/compiled/dev'
make[1]: Leaving directory '/opt/sources/nginx'
--> b7d0a7fe276
STEP 20: FROM debian:bullseye
STEP 21: RUN groupadd --gid 999 nginx  && useradd --uid 999 --gid 999 --no-create-home --home-dir /etc/nginx/html nginx
--> 6ffa9c93746
STEP 22: COPY --from=1 --chown=root:root   /opt/compiled/usr /usr
--> a3daadec9a8
STEP 23: COPY --from=1 --chown=nginx:nginx /opt/compiled/etc /etc
--> 8d2f735eb14
STEP 24: RUN install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/client_temp   && install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/proxy_temp    && install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/fastcgi_temp  && install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/uwsgi_temp    && install --directory --mode 0750 --owner nginx --group nginx /var/cache/nginx/scgi_temp
--> fe5ffb1d88a
STEP 25: RUN install --directory --mode 0750 --owner nginx --group nginx /run/nginx
--> 121891cffb7
STEP 26: RUN apt-get update && apt install --yes libcap2-bin
Get:1 http://security.debian.org/debian-security bullseye-security InRelease [44.1 kB]
Get:2 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [122 kB]
Get:3 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:4 http://deb.debian.org/debian bullseye-updates InRelease [39.4 kB]
Get:5 http://deb.debian.org/debian bullseye/main amd64 Packages [8183 kB]
Get:6 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [2596 B]
Fetched 8507 kB in 2s (3593 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  libcap2 libpam-cap
The following NEW packages will be installed:
  libcap2 libcap2-bin libpam-cap
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 71.6 kB of archives.
After this operation, 232 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bullseye/main amd64 libcap2 amd64 1:2.44-1 [23.6 kB]
Get:2 http://deb.debian.org/debian bullseye/main amd64 libcap2-bin amd64 1:2.44-1 [32.6 kB]
Get:3 http://deb.debian.org/debian bullseye/main amd64 libpam-cap amd64 1:2.44-1 [15.4 kB]
Fetched 71.6 kB in 0s (332 kB/s)
Selecting previously unselected package libcap2:amd64.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 6653 files and directories currently installed.)
Preparing to unpack .../libcap2_1%3a2.44-1_amd64.deb ...
Unpacking libcap2:amd64 (1:2.44-1) ...
Selecting previously unselected package libcap2-bin.
Preparing to unpack .../libcap2-bin_1%3a2.44-1_amd64.deb ...
Unpacking libcap2-bin (1:2.44-1) ...
Selecting previously unselected package libpam-cap:amd64.
Preparing to unpack .../libpam-cap_1%3a2.44-1_amd64.deb ...
Unpacking libpam-cap:amd64 (1:2.44-1) ...
Setting up libcap2:amd64 (1:2.44-1) ...
Setting up libcap2-bin (1:2.44-1) ...
Setting up libpam-cap:amd64 (1:2.44-1) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Processing triggers for libc-bin (2.31-13+deb11u2) ...
--> 1386def1b31
STEP 27: RUN setcap cap_net_bind_service=+ep /usr/sbin/nginx
--> f0bbcf4931a
STEP 28: USER nginx 
--> 664e10010b1
STEP 29: WORKDIR /etc/nginx/html
--> 231c9aaf89d
STEP 30: STOPSIGNAL SIGQUIT
--> 67a6edceaa3
STEP 31: EXPOSE 80/tcp
--> 0022870a04c
STEP 32: EXPOSE 443/tcp
--> 23ae3ad1d93
STEP 33: CMD ["nginx", "-g", "daemon off;"]
STEP 34: COMMIT
--> 715f0f0f40f
715f0f0f40fbcabba1f07d54d1886badca5d7a7bc6ab1d2db2d37af0e2595823

Inspect image size.

$ podman image ls --filter id=715f0f0f40fbcabba1f07d54d1886badca5d7a7bc6ab1d2db2d37af0e2595823
REPOSITORY  TAG     IMAGE ID      CREATED        SIZE
<none>      <none>  715f0f0f40fb  9 minutes ago  162 MB

Check container.

$ podman run --rm --interactive --tty 715f0f0f40fb nginx -V
nginx version: nginx/1.20.2
built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
built with OpenSSL 1.1.1k  25 Mar 2021
TLS SNI support enabled
configure arguments: --with-cc-opt='-O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now --pie' --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/dev/stderr --http-log-path=/dev/stdout --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/run/nginx/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-file-aio --with-threads --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_dav_module --add-module=../headers-more-nginx-module
$ podman run --rm --publish 8080:80 --detach 715f0f0f40fb 
fc0e78f7ddb8251622499e1472f969b1e50ba68d1dcb9515c42ff679bd9d9641
$ podman container ls
CONTAINER ID  IMAGE         COMMAND               CREATED         STATUS             PORTS                 NAMES
fc0e78f7ddb8  715f0f0f40fb  nginx -g daemon o...  15 seconds ago  Up 16 seconds ago  0.0.0.0:8080->80/tcp  modest_vaughan
$ curl http://localhost:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
$ podman container stop modest_vaughan