Use fixed same-origin API proxy
Verify mini program and deploy preview / verify-deploy (push) Successful in 37s
Verify mini program and deploy preview / verify-deploy (push) Successful in 37s
This commit is contained in:
@@ -16,7 +16,6 @@ jobs:
|
||||
SOURCE_REPOSITORY: ${{ gitea.repository }}
|
||||
SOURCE_REVISION: ${{ gitea.sha }}
|
||||
DEPLOY_PORT: ${{ vars.DEPLOY_PORT || '3000' }}
|
||||
API_BASE_URL: ${{ vars.API_BASE_URL }}
|
||||
steps:
|
||||
- name: Fetch exact revision
|
||||
env: { SOURCE_TOKEN: "${{ secrets.GITEA_TOKEN || gitea.token }}" }
|
||||
@@ -43,7 +42,7 @@ jobs:
|
||||
set -eu
|
||||
docker network inspect pk-lab-public >/dev/null 2>&1 || docker network create pk-lab-public
|
||||
docker rm -f pk-lab-xhs-preview 2>/dev/null || true
|
||||
docker run -d --name pk-lab-xhs-preview --restart unless-stopped --network pk-lab-public --read-only --tmpfs /tmp --tmpfs /var/cache/nginx --tmpfs /var/run -e API_BASE_URL="$API_BASE_URL" -p "$DEPLOY_PORT:8080" "pk-lab-xhs:$SOURCE_REVISION"
|
||||
docker run -d --name pk-lab-xhs-preview --restart unless-stopped --network pk-lab-public --read-only --tmpfs /var/cache/nginx --tmpfs /var/run -p "$DEPLOY_PORT:8080" "pk-lab-xhs:$SOURCE_REVISION"
|
||||
for i in 1 2 3 4 5 6 7 8 9 10; do
|
||||
status="$(docker inspect --format '{{.State.Health.Status}}' pk-lab-xhs-preview)"
|
||||
[ "$status" = healthy ] && exit 0
|
||||
|
||||
+1
-1
@@ -3,4 +3,4 @@ COPY web /usr/share/nginx/html
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
EXPOSE 8080
|
||||
HEALTHCHECK --interval=10s --timeout=3s --start-period=5s --retries=5 CMD wget -q -O- http://127.0.0.1:8080/health || exit 1
|
||||
CMD ["/bin/sh", "-c", "envsubst '$API_BASE_URL' < /usr/share/nginx/html/runtime-env.js > /tmp/runtime-env.js && exec nginx -g 'daemon off;'"]
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
|
||||
@@ -9,4 +9,4 @@
|
||||
3. 用小红书开发者工具打开仓库根目录,绑定综合版 App ID。
|
||||
4. 后端配置同一 App ID/Secret 后重新部署。
|
||||
|
||||
CI 默认把公网预览持续部署到宿主机 `3000` 端口,并加入 `pk-lab-public` Docker 网络。浏览器同源请求 `/api`,Nginx 转发给网络内的 `pk-lab-api:8000`,不需要写死服务器 IP,也不需要暴露后端端口。只有跨域或独立 API 域名部署时才需配置可选变量 `API_BASE_URL`。预览使用后端显式开启的 `TEST_AUTH_ENABLED` 测试身份,正式小程序使用 `xhs.login()`。
|
||||
CI 默认把公网预览持续部署到宿主机 `3000` 端口,并加入 `pk-lab-public` Docker 网络。浏览器固定同源请求 `/api`,Nginx 转发给网络内的 `pk-lab-api:8000`,不写死服务器 IP,也不暴露后端端口。预览使用后端显式开启的 `TEST_AUTH_ENABLED` 测试身份,正式小程序使用 `xhs.login()`。
|
||||
|
||||
@@ -3,11 +3,6 @@ server {
|
||||
server_name _;
|
||||
root /usr/share/nginx/html;
|
||||
|
||||
location = /runtime-env.js {
|
||||
alias /tmp/runtime-env.js;
|
||||
add_header Cache-Control "no-store";
|
||||
}
|
||||
|
||||
location /api/ {
|
||||
resolver 127.0.0.11 valid=10s ipv6=off;
|
||||
set $api_upstream http://pk-lab-api:8000;
|
||||
|
||||
+1
-2
@@ -1,2 +1 @@
|
||||
window.PK_CONFIG = { apiBase: '${API_BASE_URL}' };
|
||||
|
||||
window.PK_CONFIG = { apiBase: '' };
|
||||
|
||||
Reference in New Issue
Block a user