@@ -11,10 +11,10 @@ FROM jlesage/baseimage:alpine-3.9-v2.4.3
11
11
ARG DOCKER_IMAGE_VERSION=unknown
12
12
13
13
# Define software versions.
14
- ARG NGINX_PROXY_MANAGER_VERSION=2.0.14
14
+ ARG NGINX_PROXY_MANAGER_VERSION=2.2.0
15
15
16
16
# Define software download URLs.
17
- ARG NGINX_PROXY_MANAGER_URL=https://github.com/jc21/nginx-proxy-manager/archive/${NGINX_PROXY_MANAGER_VERSION}.tar.gz
17
+ ARG NGINX_PROXY_MANAGER_URL=https://github.com/jc21/nginx-proxy-manager/archive/v ${NGINX_PROXY_MANAGER_VERSION}.tar.gz
18
18
19
19
# Define working directory.
20
20
WORKDIR /tmp
@@ -84,44 +84,56 @@ RUN \
84
84
mkdir nginx-proxy-manager && \
85
85
curl -# -L ${NGINX_PROXY_MANAGER_URL} | tar xz --strip 1 -C nginx-proxy-manager && \
86
86
87
- # Build Nginx Proxy Manager.
88
- echo "Building Nginx Proxy Manager..." && \
87
+ sed-patch "s/\" version\" : \" 0.0.0\" ,/\" version\" : \" ${NGINX_PROXY_MANAGER_VERSION}\" ,/" nginx-proxy-manager/frontend/package.json && \
88
+ sed-patch "s/\" version\" : \" 0.0.0\" ,/\" version\" : \" ${NGINX_PROXY_MANAGER_VERSION}\" ,/" nginx-proxy-manager/backend/package.json && \
89
+
89
90
cp -r nginx-proxy-manager /app && \
90
- cd /app && \
91
+
92
+ # Build Nginx Proxy Manager frontend.
93
+ echo "Building Nginx Proxy Manager frontend..." && \
94
+ cd /app/frontend && \
91
95
yarn install && \
92
- npm --cache /tmp/.npm run-script build && \
93
- rm -rf node_modules && \
96
+ yarn build && \
97
+ /tmp/bin/node-prune && \
98
+ cd /tmp && \
99
+
100
+ # Build Nginx Proxy Manager backend.
101
+ echo "Building Nginx Proxy Manager backend..." && \
102
+ cd /app/backend && \
94
103
yarn install --prod && \
95
104
/tmp/bin/node-prune && \
96
105
cd /tmp && \
97
106
98
107
# Install Nginx Proxy Manager.
99
108
echo "Installing Nginx Proxy Manager..." && \
100
- mkdir -p /opt/nginx-proxy-manager/src && \
101
- cp -r /app/dist /opt/nginx-proxy-manager/ && \
102
- cp -r /app/node_modules /opt/nginx-proxy-manager/ && \
103
- cp -r /app/src/backend /opt/nginx-proxy-manager/src/ && \
104
- cp -r /app/package.json /opt/nginx-proxy-manager/ && \
105
- cp -r /app/knexfile.js /opt/nginx-proxy-manager/ && \
106
- cp -r nginx-proxy-manager/rootfs/etc/nginx /etc/ && \
107
- cp -r nginx-proxy-manager/rootfs/var/www /var/ && \
109
+ mkdir -p /opt && \
110
+ cp -r /app/backend /opt/nginx-proxy-manager && \
111
+ cp -r /app/frontend/dist /opt/nginx-proxy-manager/frontend && \
112
+ cp -r nginx-proxy-manager/docker/rootfs/etc/nginx /etc/ && \
113
+ cp -r nginx-proxy-manager/docker/rootfs/var/www /var/ && \
114
+ cp -r nginx-proxy-manager/docker/rootfs/etc/letsencrypt.ini /etc/ && \
115
+
116
+ # Remove the nginx development config.
117
+ rm /etc/nginx/conf.d/dev.conf && \
108
118
109
119
# Change the management interface port to the unprivileged port 8181.
110
- sed-patch 's|81|8181|' /opt/nginx-proxy-manager/src/backend/index.js && \
111
- sed-patch 's|81|8181|' /etc/nginx/conf.d/default.conf && \
120
+ sed-patch 's|81 default|8181 default|' /etc/nginx/conf.d/production.conf && \
121
+
122
+ # Change the management interface root.
123
+ sed-patch 's|/app/frontend;|/opt/nginx-proxy-manager/frontend;|' /etc/nginx/conf.d/production.conf && \
112
124
113
125
# Change the HTTP port 80 to the unprivileged port 8080.
114
- sed-patch 's|listen 80;|listen 8080;|' /etc/nginx/conf.d/default.conf && \
115
- sed-patch 's|listen 80;|listen 8080;|' /opt/nginx-proxy-manager/src/backend/ templates/letsencrypt-request.conf && \
116
- sed-patch 's|listen 80;|listen 8080;|' /opt/nginx-proxy-manager/src/backend/ templates/_listen.conf && \
117
- sed-patch 's|listen 80 |listen 8080 |' /opt/nginx-proxy-manager/src/backend/ templates/default.conf && \
126
+ sed-patch 's|80;|8080;|' /etc/nginx/conf.d/default.conf && \
127
+ sed-patch 's|listen 80;|listen 8080;|' /opt/nginx-proxy-manager/templates/letsencrypt-request.conf && \
128
+ sed-patch 's|listen 80;|listen 8080;|' /opt/nginx-proxy-manager/templates/_listen.conf && \
129
+ sed-patch 's|listen 80 |listen 8080 |' /opt/nginx-proxy-manager/templates/default.conf && \
118
130
119
131
# Change the HTTPs port 443 to the unprivileged port 4443.
120
- sed-patch 's|listen 443 |listen 4443 |' /etc/nginx/conf.d/default.conf && \
121
- sed-patch 's|listen 443 |listen 4443 |' /opt/nginx-proxy-manager/src/backend/ templates/_listen.conf && \
132
+ sed-patch 's|443 |4443 |' /etc/nginx/conf.d/default.conf && \
133
+ sed-patch 's|listen 443 |listen 4443 |' /opt/nginx-proxy-manager/templates/_listen.conf && \
122
134
123
135
# Fix nginx test command line.
124
- sed-patch 's|-g "error_log off;"||' /opt/nginx-proxy-manager/src/backend/ internal/nginx.js && \
136
+ sed-patch 's|-g "error_log off;"||' /opt/nginx-proxy-manager/internal/nginx.js && \
125
137
126
138
# Remove the `user` directive, since we want nginx to run as non-root.
127
139
sed-patch 's|user root;|#user root;|' /etc/nginx/nginx.conf && \
@@ -137,13 +149,13 @@ RUN \
137
149
ln -sf /config/nginx/ip_ranges.conf /etc/nginx/conf.d/include/ip_ranges.conf && \
138
150
139
151
# Make sure the config file for resovers is stored in persistent volume.
140
- rm /etc/nginx/conf.d/include/resolvers.conf && \
141
152
ln -sf /config/nginx/resolvers.conf /etc/nginx/conf.d/include/resolvers.conf && \
142
153
143
154
# Make sure nginx cache is stored on the persistent volume.
144
155
ln -s /config/nginx/cache /var/lib/nginx/cache && \
145
156
146
157
# Make sure the manager config file is stored in persistent volume.
158
+ rm -r /opt/nginx-proxy-manager/config && \
147
159
mkdir /opt/nginx-proxy-manager/config && \
148
160
ln -s /config/production.json /opt/nginx-proxy-manager/config/production.json && \
149
161
0 commit comments