diff --git a/README.md b/README.md index 2e4d291..def7fe7 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,64 @@ # Nginx Docker Playground -Nginx Development Environment based on official docker image. + -## Docker Image Name +Nginx Development Environment based on official docker image and official source code. -`docker pull soulteary/prebuilt-nginx-modules:base-1.21.3` +## Quick Start -## Nginx Versions +```bash +docker pull soulteary/prebuilt-nginx-modules:base-1.24.0 +# or +docker pull soulteary/prebuilt-nginx-modules:base-1.23.1-alpine +``` + +Example, how to quickly build a nginx addon: + +```docker +# @see https://github.com/nginx-with-docker/ngx_http_srcache_filter_module/blob/main/docker/0.32/Dockerfile.alpine + +ARG NGINX_VERSION=1.19.7 +FROM soulteary/prebuilt-nginx-modules:base-${NGINX_VERSION}-alpine AS Builder + +ARG MODULE_CHECKSUM=127181f371046cc5ec0e0acf1b45cd478a8a7a5f +ARG MODULE_VERSION=0.32 +ARG MODULE_NAME=srcache-nginx-module-src +ARG MODULE_SOURCE=https://github.com/nginx-with-docker/srcache-nginx-module-src + +RUN cd /usr/src && \ + curl -L "${MODULE_SOURCE}/archive/refs/tags/v${MODULE_VERSION}.tar.gz" -o "${MODULE_VERSION}.tar.gz" && \ + echo "${MODULE_CHECKSUM} ${MODULE_VERSION}.tar.gz" | shasum -c && \ + tar -zxC /usr/src -f ${MODULE_VERSION}.tar.gz && \ + cd /usr/src && \ + mv ${MODULE_NAME}-${MODULE_VERSION}/ ${MODULE_NAME} && \ + cd /usr/src/nginx && \ + CONFARGS=$(nginx -V 2>&1 | sed -n -e 's/^.*arguments: //p') \ + CONFARGS=${CONFARGS/-Os -fomit-frame-pointer -g/-Os} && \ + echo $CONFARGS && \ + ./configure --with-compat $CONFARGS --add-dynamic-module=../${MODULE_NAME}/ && \ + make modules + +FROM scratch + +COPY --from=Builder /usr/src/nginx/objs/ngx_http_srcache_filter_module.so / +``` + +## Pre-built Nginx Addons + +Pre-built nginx addons binaries based on this project + - https://github.com/nginx-with-docker/prebuilt-nginx-modules + +## Support Nginx Versions Below are other available nginx versions. +- 1.24.0 +- 1.23.1 +- 1.23.0 +- 1.22.0 +- 1.21.6 +- 1.21.5 +- 1.21.4 - 1.21.3 - 1.21.1 - 1.21.0 diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000..06cc3b9 Binary files /dev/null and b/assets/logo.png differ diff --git a/src/.env b/src/.env index 1dba75f..76d2fd1 100644 --- a/src/.env +++ b/src/.env @@ -1,2 +1,2 @@ -NGINX_VERSION=1.21.3 -NGINX_SHASUM=682f592180cdd91ae866a8b40c3d8762659248d7 +NGINX_VERSION=1.24.0 +NGINX_SHASUM=fec561c95c0320f1860c0d55a8724cd45e5cc238 \ No newline at end of file diff --git a/src/Dockerfile.alpine b/src/Dockerfile.alpine index bcf7226..44835f0 100644 --- a/src/Dockerfile.alpine +++ b/src/Dockerfile.alpine @@ -4,7 +4,7 @@ FROM nginx:${NGINX_VERSION}-alpine # RUN cat /etc/apk/repositories | sed -e "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/" | tee /etc/apk/repositories ARG NGINX_SHASUM=0dde53b5a948efc9dc852814186052e559d190ea -RUN apk add --no-cache --virtual .build-deps gcc libc-dev make openssl-dev pcre-dev zlib-dev linux-headers libxslt-dev gd-dev geoip-dev perl-dev libedit-dev mercurial bash alpine-sdk findutils && \ +RUN apk add --no-cache --virtual .build-deps gcc libc-dev make openssl-dev pcre2-dev zlib-dev linux-headers libxslt-dev gd-dev geoip-dev perl-dev libedit-dev mercurial bash alpine-sdk findutils && \ mkdir -p /usr/src && cd /usr/src && \ curl -L "http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz" -o nginx.tar.gz && \ echo "$NGINX_SHASUM nginx.tar.gz" | shasum -c && \ diff --git a/src/Dockerfile.debian b/src/Dockerfile.debian index 798b7b1..ae77d89 100644 --- a/src/Dockerfile.debian +++ b/src/Dockerfile.debian @@ -14,21 +14,21 @@ RUN apt-get update && \ apt install -y wget curl && mkdir -p /usr/src RUN cd /usr/src && \ - wget https://cfhcable.dl.sourceforge.net/project/pcre/pcre/8.44/pcre-8.44.tar.gz && \ - tar zxvf pcre-8.44.tar.gz && \ - cd pcre-8.44 && \ + wget https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.gz && \ + tar zxvf pcre2-10.42.tar.gz && \ + cd pcre2-10.42 && \ ./configure && make && make install RUN cd /usr/src && \ - wget https://www.zlib.net/zlib-1.2.11.tar.gz && \ - tar zxvf zlib-1.2.11.tar.gz && \ - cd zlib-1.2.11 && \ + wget https://www.zlib.net/zlib-1.2.13.tar.gz && \ + tar zxvf zlib-1.2.13.tar.gz && \ + cd zlib-1.2.13 && \ ./configure && make && make install RUN cd /usr/src && \ - wget http://www.openssl.org/source/openssl-1.1.1k.tar.gz && \ - tar zxvf openssl-1.1.1k.tar.gz && \ - cd openssl-1.1.1k && \ + wget http://www.openssl.org/source/openssl-1.1.1t.tar.gz && \ + tar zxvf openssl-1.1.1t.tar.gz && \ + cd openssl-1.1.1t && \ ./config && make && make install RUN cd /usr/src && \