@mgcloud/ikkyu-web
- Next.js: 16.1.1
- TypeScript: 5.9.3
- Jenkins: build
项目介绍
aigc C端
说明
- Test-IP: http://115.190.63.16:3000/
- Test: https://test-aigc.huanjai.com/
- Prod: https://huanjai.com/
- gitlab: http://39.108.189.115:81/aigc-platform/frontend/ikkyu-web.git
- Api-Test: http://115.190.63.16:8990/doc.html#/home
- Api-Prod: https://api.huanjai.com/doc.html#/home
- Node.js 版本: >=
22.17.1(LTS) - 包管理工具:
pnpm - test job: http://120.78.73.72:5186/view/aigc/job/ikkyu-web-ui-frontend-测试-user-aigc-new/
- prod job: http://115.190.247.121:8080/job/ikkyu-web-ui-frontend-生产环境-user-aigc/
bash
# 克隆项目
git clone http://39.108.189.115:81/aigc-platform/frontend/ikkyu-web.git
# 进入项目目录
cd ikkyu-web
# 安装依赖
pnpm install
# 启动服务
pnpm run dev发布
bash
pnpm run buildJenkins job
shell
#!/bin/bash
export NODEJS22_17_HOME=/opt/nodejs/node-v22.17.1
export PATH=$NODEJS22_17_HOME/bin:$PATH
node -v
pnpm -v
cp .env.test .env
pnpm install
pnpm run build || exit 1
cd out/
ls -l
rm -f html.tar
tar zcvf html.tar *shell
#!/bin/bash
export NODEJS22_17_HOME=/opt/nodejs/node-v22.17.1
export PATH=$NODEJS22_17_HOME/bin:$PATH
node -v
pnpm -v
cp .env.production .env
pnpm install
pnpm run build || exit 1
# 定义变量
#镜像命名空间
images_ns="aigc"
project_name="ikkyu-web-ui-frontend"
jar_path="out"
cp $WORKSPACE/docker/Dockerfile $WORKSPACE/$jar_path/
cp $WORKSPACE/docker/*.conf $WORKSPACE/$jar_path/
echo "###cd到项目文件夹"
cd $WORKSPACE/${jar_path}
echo $(pwd)
rm -f html.tar
tar zcvf html.tar * --exclude Dockerfile --exclude *.conf
echo "###打包镜像,用build_num作为版本号"
docker build -t images-hj-cn-beijing.cr.volces.com/${images_ns}/${project_name}:bid$BUILD_NUMBER .
echo "###上传镜像到阿里云容器仓库"
docker push images-hj-cn-beijing.cr.volces.com/${images_ns}/${project_name}:bid$BUILD_NUMBER
echo "###修改deploy镜像id"
sed -i "s/^.*image: images-hj-cn-beijing.cr.volces.com.*$/ image: images-hj-cn-beijing.cr.volces.com\/${images_ns}\/${project_name}:bid$BUILD_NUMBER/" /opt/k8s-deploy/${images_ns}/deploy_${project_name}.yml
echo "###k8s部署"
kubectl apply -f /opt/k8s-deploy/${images_ns}/deploy_${project_name}.yml
echo "### k8s部署检查"
kubectl rollout status deployments ${project_name}-deployment -n ${images_ns}
kubectl get deployments ${project_name}-deployment -n ${images_ns}shell
#!/bin/bash
docker login --username=广州三阳开泰科技短剧 --password=Images#2022 images-registry.cn-shenzhen.cr.aliyuncs.com
IMAGE_TAG="bid$BUILD_NUMBER"
VPC_REGISTRY="images-registry-vpc.cn-shenzhen.cr.aliyuncs.com"
PUBLIC_REGISTRY="images-registry.cn-shenzhen.cr.aliyuncs.com"
node -v
pnpm -v
echo "构建镜像..."
mv Dockerfile.test Dockerfile
docker build -t $VPC_REGISTRY/aigc/test-ikkyu-web-ui-frontend:$IMAGE_TAG .
docker push $VPC_REGISTRY/aigc/test-ikkyu-web-ui-frontend:$IMAGE_TAG
echo "部署到远程服务器..."
ssh aigc@115.190.63.16 << EOF
docker login --username=广州三阳开泰科技短剧 --password=Images#2022 images-registry.cn-shenzhen.cr.aliyuncs.com
set -e
echo "拉取镜像..."
docker pull $PUBLIC_REGISTRY/aigc/test-ikkyu-web-ui-frontend:$IMAGE_TAG
echo "重启容器..."
docker stop test-ikkyu-web-ui-frontend || true
docker rm test-ikkyu-web-ui-frontend || true
echo "启动新容器..."
docker run -d \
--name test-ikkyu-web-ui-frontend \
-p 3000:3000 \
$PUBLIC_REGISTRY/aigc/test-ikkyu-web-ui-frontend:$IMAGE_TAG
echo "部署完成!"
EOFDockerfile
dockerfile
# Build stage
FROM images-registry-vpc.cn-shenzhen.cr.aliyuncs.com/weblogic/node:20-slim AS builder
RUN npm install -g pnpm
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
COPY . .
RUN rm -f .env.local .env.production .env.production.local
COPY .env.test .env
RUN pnpm run build
# Production stage
FROM images-registry-vpc.cn-shenzhen.cr.aliyuncs.com/weblogic/node:20-slim AS runner
RUN npm install -g pnpm
WORKDIR /app
ENV NODE_ENV=production
ENV HOST=0.0.0.0
EXPOSE 3000
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
COPY --from=builder /app/node_modules ./node_modules
CMD ["pnpm", "start"]dockerfile
# Build stage
FROM images-registry-vpc.cn-shenzhen.cr.aliyuncs.com/weblogic/node:20-slim AS builder
RUN npm install -g pnpm
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm run build
# Production stage
FROM images-registry-vpc.cn-shenzhen.cr.aliyuncs.com/weblogic/node:20-slim AS runner
RUN npm install -g pnpm
WORKDIR /app
ENV NODE_ENV=production
ENV HOST=0.0.0.0
EXPOSE 3000
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
COPY --from=builder /app/node_modules ./node_modules
CMD ["pnpm", "start"]