fix: health 路由路径修正为 /health
healthRoutes 注册时无 /v1 前缀,实际路径是 /health 而非 /v1/health。 将 auth 中间件白名单从 /v1/health 改为 /health,并同步修正所有 HEALTHCHECK 和 CI health check 路径。
This commit is contained in:
parent
28636447fa
commit
9d1f52d95b
@ -69,7 +69,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sleep 10
|
sleep 10
|
||||||
for i in {1..5}; do
|
for i in {1..5}; do
|
||||||
if bun -e "try{const r=await fetch('http://localhost:3001/v1/health');process.exit(r.ok?0:1)}catch{process.exit(1)}"; then
|
if bun -e "try{const r=await fetch('http://localhost:3001/health');process.exit(r.ok?0:1)}catch{process.exit(1)}"; then
|
||||||
echo "Test environment is healthy!"
|
echo "Test environment is healthy!"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -106,7 +106,7 @@ jobs:
|
|||||||
sleep 15
|
sleep 15
|
||||||
for i in {1..5}; do
|
for i in {1..5}; do
|
||||||
echo "Health check attempt $i..."
|
echo "Health check attempt $i..."
|
||||||
bun -e "try{const r=await fetch('http://localhost:3000/v1/health');console.log('status:',r.status,'ok:',r.ok);process.exit(r.ok?0:1)}catch(e){console.error('ERROR:',e.message);process.exit(1)}"
|
bun -e "try{const r=await fetch('http://localhost:3000/health');console.log('status:',r.status,'ok:',r.ok);process.exit(r.ok?0:1)}catch(e){console.error('ERROR:',e.message);process.exit(1)}"
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "Production deployment successful!"
|
echo "Production deployment successful!"
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@ -44,7 +44,7 @@ EXPOSE 3000
|
|||||||
|
|
||||||
# 健康检查
|
# 健康检查
|
||||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
||||||
CMD curl -f http://localhost:3000/v1/health || exit 1
|
CMD curl -f http://localhost:3000/health || exit 1
|
||||||
|
|
||||||
# 启动应用
|
# 启动应用
|
||||||
CMD ["node", "dist/index.js"]
|
CMD ["node", "dist/index.js"]
|
||||||
|
|||||||
@ -22,7 +22,7 @@ services:
|
|||||||
network_mode: host
|
network_mode: host
|
||||||
env_file: .env.prod
|
env_file: .env.prod
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:3000/v1/health"]
|
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
@ -48,7 +48,7 @@ services:
|
|||||||
network_mode: host
|
network_mode: host
|
||||||
env_file: .env.test
|
env_file: .env.test
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:3001/v1/health"]
|
test: ["CMD", "curl", "-f", "http://localhost:3001/health"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
|
|||||||
@ -13,11 +13,11 @@ declare module '@fastify/jwt' {
|
|||||||
async function authMiddleware(app: FastifyInstance): Promise<void> {
|
async function authMiddleware(app: FastifyInstance): Promise<void> {
|
||||||
app.addHook('onRequest', async (request) => {
|
app.addHook('onRequest', async (request) => {
|
||||||
const publicPaths = [
|
const publicPaths = [
|
||||||
|
'/health',
|
||||||
'/v1/auth/huawei',
|
'/v1/auth/huawei',
|
||||||
'/v1/auth/guest',
|
'/v1/auth/guest',
|
||||||
'/v1/auth/phone',
|
'/v1/auth/phone',
|
||||||
'/v1/auth/refresh',
|
'/v1/auth/refresh',
|
||||||
'/v1/health',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if (publicPaths.some((p) => request.url.startsWith(p))) {
|
if (publicPaths.some((p) => request.url.startsWith(p))) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user