Cache and gzip assets in docker
This commit is contained in:
parent
e8f927bfd3
commit
d0c0c701e6
6 changed files with 43 additions and 0 deletions
|
@ -37,6 +37,7 @@ rules:
|
||||||
# disable this temporarily since we have a lot of JS files
|
# disable this temporarily since we have a lot of JS files
|
||||||
# and typescript-eslint runs against JS files too
|
# and typescript-eslint runs against JS files too
|
||||||
'@typescript-eslint/explicit-module-boundary-types': off
|
'@typescript-eslint/explicit-module-boundary-types': off
|
||||||
|
'@typescript-eslint/ban-ts-comment': 'off'
|
||||||
'@typescript-eslint/ban-ts-ignore': 'off'
|
'@typescript-eslint/ban-ts-ignore': 'off'
|
||||||
react-hooks/rules-of-hooks: error
|
react-hooks/rules-of-hooks: error
|
||||||
react-hooks/exhaustive-deps:
|
react-hooks/exhaustive-deps:
|
||||||
|
|
3
.github/workflows/push.yml
vendored
3
.github/workflows/push.yml
vendored
|
@ -1,5 +1,8 @@
|
||||||
on: [push]
|
on: [push]
|
||||||
name: Deploy workflow
|
name: Deploy workflow
|
||||||
|
concurrency:
|
||||||
|
group: build-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
jobs:
|
jobs:
|
||||||
install:
|
install:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -12,3 +12,4 @@ experimental/
|
||||||
deploy_ghpages.sh
|
deploy_ghpages.sh
|
||||||
tags
|
tags
|
||||||
.eslintcache
|
.eslintcache
|
||||||
|
__test_*.sh
|
||||||
|
|
|
@ -11,6 +11,7 @@ RUN pnpm build \
|
||||||
&& rm public/*.map || true
|
&& rm public/*.map || true
|
||||||
|
|
||||||
FROM --platform=$TARGETPLATFORM nginx:alpine
|
FROM --platform=$TARGETPLATFORM nginx:alpine
|
||||||
|
COPY docker/nginx-default.conf /etc/nginx/conf.d/default.conf
|
||||||
RUN rm -rf /usr/share/nginx/html/*
|
RUN rm -rf /usr/share/nginx/html/*
|
||||||
COPY --from=builder /app/public /usr/share/nginx/html
|
COPY --from=builder /app/public /usr/share/nginx/html
|
||||||
ENV YACD_DEFAULT_BACKEND "http://127.0.0.1:9090"
|
ENV YACD_DEFAULT_BACKEND "http://127.0.0.1:9090"
|
||||||
|
|
|
@ -13,6 +13,12 @@ The site [http://yacd.haishan.me](http://yacd.haishan.me) is served with HTTP no
|
||||||
- Docker Hub [`haishanh/yacd`](https://hub.docker.com/r/haishanh/yacd)
|
- Docker Hub [`haishanh/yacd`](https://hub.docker.com/r/haishanh/yacd)
|
||||||
- GitHub Container Registry [`ghcr.io/haishanh/yacd`](https://github.com/haishanh/yacd/pkgs/container/yacd)
|
- GitHub Container Registry [`ghcr.io/haishanh/yacd`](https://github.com/haishanh/yacd/pkgs/container/yacd)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker run -p 1234:80 -d --name yacd --rm ghcr.io/haishanh/yacd:master
|
||||||
|
|
||||||
|
# and then open http://localhost:1234 in your browser
|
||||||
|
```
|
||||||
|
|
||||||
**Supported URL query params**
|
**Supported URL query params**
|
||||||
|
|
||||||
| Param | Description |
|
| Param | Description |
|
||||||
|
|
31
docker/nginx-default.conf
Normal file
31
docker/nginx-default.conf
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
# access_log /var/log/nginx/host.access.log main;
|
||||||
|
gzip on;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_comp_level 4;
|
||||||
|
gzip_min_length 256;
|
||||||
|
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ assets\/.*\.(?:css|js|woff2?|svg|gif|map)$ {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
add_header Cache-Control "max-age=31536000";
|
||||||
|
# access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
|
#error_page 404 /404.html;
|
||||||
|
|
||||||
|
# redirect server error pages to the static page /50x.html
|
||||||
|
#
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue