31 lines
No EOL
1.2 KiB
Docker
31 lines
No EOL
1.2 KiB
Docker
FROM nginx:1.27-alpine
|
|
|
|
RUN rm -rf /usr/share/nginx/html/* /etc/nginx/conf.d/default.conf && \
|
|
mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/proxy_temp \
|
|
/var/cache/nginx/fastcgi_temp /var/cache/nginx/uwsgi_temp \
|
|
/var/cache/nginx/scgi_temp && \
|
|
chown -R 101:101 /var/cache/nginx /etc/nginx/conf.d && \
|
|
sed -i -e '/^user /d' -e 's|^pid .*|pid /tmp/nginx.pid;|' /etc/nginx/nginx.conf && \
|
|
printf '%s\n' \
|
|
'server {' \
|
|
' listen 8080;' \
|
|
' root /usr/share/nginx/html;' \
|
|
' index index.html;' \
|
|
' server_tokens off;' \
|
|
' gzip on;' \
|
|
' gzip_types text/css application/javascript application/json image/svg+xml;' \
|
|
' location = /healthz { access_log off; return 200 "ok\n"; }' \
|
|
' location /assets/ { expires 1y; add_header Cache-Control "public, immutable"; }' \
|
|
' location = /index.html { add_header Cache-Control "no-cache"; }' \
|
|
' location / { try_files $uri $uri/ /index.html; }' \
|
|
'}' > /etc/nginx/conf.d/site.conf
|
|
|
|
COPY dist/ /usr/share/nginx/html/
|
|
|
|
EXPOSE 8080
|
|
USER 101
|
|
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
CMD wget -qO- http://127.0.0.1:8080/healthz || exit 1
|
|
|
|
CMD ["nginx", "-g", "daemon off;"] |