feat: 接后端线上api
This commit is contained in:
parent
c4b0dc1432
commit
4913e96586
1
.env.production
Normal file
1
.env.production
Normal file
@ -0,0 +1 @@
|
|||||||
|
API_ENDPOINT=https://api.memorywake.com/api
|
||||||
@ -23,12 +23,14 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "Building the Docker image..."
|
echo "Building the Docker image..."
|
||||||
tag_name=${{ gitea.ref_name }}
|
tag_name=${{ gitea.ref_name }}
|
||||||
docker build -t hub.fairclip.cn/memowake/memowake-front:${tag_name} .
|
tag_name=$(echo "${{ gitea.ref_name }}" | tr '/' '-')
|
||||||
|
docker build -t hub.fairclip.cn/memowake/memowake-front:${tag_name} -f dockerfiles/prod.Dockerfile .
|
||||||
docker push hub.fairclip.cn/memowake/memowake-front:${tag_name}
|
docker push hub.fairclip.cn/memowake/memowake-front:${tag_name}
|
||||||
echo "Docker image built successfully!"
|
echo "Docker image built successfully!"
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
run: |
|
run: |
|
||||||
echo "Deploying the project..."
|
echo "Deploying the project..."
|
||||||
tag_name=${{ gitea.ref_name }}
|
tag_name=${{ gitea.ref_name }}
|
||||||
|
tag_name=$(echo "${{ gitea.ref_name }}" | tr '/' '-')
|
||||||
bash ./scripts/prod_deploy.sh ${tag_name}
|
bash ./scripts/prod_deploy.sh ${tag_name}
|
||||||
echo "Deploy successful!"
|
echo "Deploy successful!"
|
||||||
9
app.config.js
Normal file
9
app.config.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// app.config.js
|
||||||
|
console.log("API_ENDPOINT from process.env:", process.env.API_ENDPOINT);
|
||||||
|
|
||||||
|
export default ({ config }) => ({
|
||||||
|
...config,
|
||||||
|
extra: {
|
||||||
|
API_ENDPOINT: process.env.API_ENDPOINT || "http://192.168.31.115:18080/api"
|
||||||
|
}
|
||||||
|
});
|
||||||
17
dockerfiles/prod.Dockerfile
Normal file
17
dockerfiles/prod.Dockerfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# 第一阶段:构建 Expo Web 静态文件
|
||||||
|
FROM docker.fairclip.cn/node:22 AS builder
|
||||||
|
WORKDIR /app
|
||||||
|
COPY package.json .
|
||||||
|
# 设置npm源
|
||||||
|
RUN npm config set registry http://192.168.31.115:8081/repository/npm/
|
||||||
|
RUN npm install -g expo-cli && npm install
|
||||||
|
COPY . .
|
||||||
|
RUN cp .env.production .env
|
||||||
|
RUN npx expo export -p web
|
||||||
|
|
||||||
|
# 第二阶段:使用 nginx 作为 Web 服务器
|
||||||
|
FROM docker.fairclip.cn/nginx:1.29-alpine
|
||||||
|
COPY --from=builder /app/dist /usr/share/nginx/html
|
||||||
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
|
EXPOSE 80
|
||||||
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
@ -23,13 +23,14 @@ export interface PagedResult<T> {
|
|||||||
}
|
}
|
||||||
// 获取.env文件中的变量
|
// 获取.env文件中的变量
|
||||||
|
|
||||||
export const API_ENDPOINT = "http://192.168.31.115:18080/api"
|
|
||||||
|
export const API_ENDPOINT = () => process.env.API_ENDPOINT || "http://192.168.31.115:18080/api";
|
||||||
|
|
||||||
// 更新 access_token 的逻辑 - 用于React组件中
|
// 更新 access_token 的逻辑 - 用于React组件中
|
||||||
export const useAuthToken = async<T>(message: string | null) => {
|
export const useAuthToken = async<T>(message: string | null) => {
|
||||||
try {
|
try {
|
||||||
const { login } = useAuth();
|
const { login } = useAuth();
|
||||||
const response = await fetch(`${API_ENDPOINT}/v1/iam/access-token-refresh`);
|
const response = await fetch(`${API_ENDPOINT()}/v1/iam/access-token-refresh`);
|
||||||
const apiResponse: ApiResponse<T> = await response.json();
|
const apiResponse: ApiResponse<T> = await response.json();
|
||||||
|
|
||||||
// 如果接口报错,页面弹出来错误信息
|
// 如果接口报错,页面弹出来错误信息
|
||||||
@ -71,7 +72,7 @@ export const refreshAuthToken = async<T>(message: string | null): Promise<User>
|
|||||||
// 退出刷新会重新填充数据
|
// 退出刷新会重新填充数据
|
||||||
let response;
|
let response;
|
||||||
|
|
||||||
response = await fetch(`${API_ENDPOINT}/v1/iam/access-token-refresh`, {
|
response = await fetch(`${API_ENDPOINT()}/v1/iam/access-token-refresh`, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
"refresh_token": cookie,
|
"refresh_token": cookie,
|
||||||
@ -139,7 +140,7 @@ export const fetchApi = async <T>(
|
|||||||
headers.set('Authorization', `Bearer ${token}`);
|
headers.set('Authorization', `Bearer ${token}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const url = `${API_ENDPOINT}/v1${path}`;
|
const url = `${API_ENDPOINT()}/v1${path}`;
|
||||||
const response = await fetch(url, {
|
const response = await fetch(url, {
|
||||||
...options,
|
...options,
|
||||||
headers,
|
headers,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user