From a8fb18a3e50d3f92495fe91e16a7b0671a37bc9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=96=8C?= <259278618@qq.com> Date: Sat, 23 May 2026 17:11:40 +0800 Subject: [PATCH] dockerfile --- .gitea/workflows/deploy.yml | 52 ++++++++++--------------------------- deploy.yaml | 22 ++++++++-------- 2 files changed, 24 insertions(+), 50 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 7b25265..4a26454 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -7,57 +7,31 @@ jobs: deploy: runs-on: ubuntu-latest env: - K3S_HOST: 121.37.117.181 + K3S_HOST: ${{ secrets.K3S_HOST }} # 你已配置的K3s服务器地址 APP_NAME: ${{ gitea.repo_name }} - # ========== 必须修改1:替换为你的实际镜像仓库地址 ========== - # 若用DockerHub:改为你的DockerHub用户名(如 docker.io/zhangsan) - # 若用Gitea内置仓库:改为 116.204.74.41:3000/red-future - REGISTRY: 116.204.74.41:3000/red-future + # 核心修改1:跳过镜像推送(避免依赖DockerHub密钥),直接部署 + # 若后续要推送镜像,再配置REGISTRY和Docker密钥 steps: - uses: gitea/actions/checkout@v4 - # 1. 初始化 Docker Buildx - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + # 核心修改2:删除Docker Buildx/登录/推送步骤(避免认证报错) + # 若后续需要构建推送镜像,再恢复这部分并配置Docker密钥 - # ========== 必须修改2:适配你的镜像仓库登录(二选一) ========== - # 选项A:用Gitea内置镜像仓库(推荐,和你的代码仓库统一) - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: 116.204.74.41:3000 - username: ${{ secrets.GITEA_USER }} # 需在Gitea配置该密钥 - password: ${{ secrets.GITEA_PWD }} # 需在Gitea配置该密钥 - - # 选项B:用DockerHub(若坚持用,注释掉上面的Gitea登录,启用下面这段) - # - name: Login to DockerHub - # uses: docker/login-action@v3 - # with: - # username: ${{ secrets.DOCKER_USER }} - # password: ${{ secrets.DOCKER_PWD }} - - # 3. 构建+推送,启用缓存 - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: ${{ env.REGISTRY }}/${{ env.APP_NAME }}:${{ gitea.sha }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.APP_NAME }}:buildcache - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.APP_NAME }}:buildcache,mode=max - - # ========== 核心修复:解决/k8s/deploy.yaml不存在 ========== + # 核心修改3:修复SSH部署步骤(解决/k8s/deploy.yaml不存在) - name: SSH部署K3s run: | mkdir -p ~/.ssh - echo "${{ secrets.K3S_PEM_KEY }}" > k3s.pem + # 适配你已配置的密钥名K3S_SSH_KEY(原K3S_PEM_KEY改为K3S_SSH_KEY) + echo "${{ secrets.K3S_SSH_KEY }}" > k3s.pem chmod 600 k3s.pem - # 第一步:上传仓库根目录的deploy.yaml到K3s临时目录 + + # 关键:上传仓库根目录的deploy.yaml到K3s临时目录(解决路径不存在) scp -i k3s.pem -o StrictHostKeyChecking=no ./deploy.yaml root@${K3S_HOST}:/tmp/ - # 第二步:执行kubectl命令(指向临时文件+补充命名空间) + + # 执行kubectl命令(指向临时文件+补充命名空间) ssh -i k3s.pem -o StrictHostKeyChecking=no root@${K3S_HOST} << CMD kubectl apply -f /tmp/deploy.yaml kubectl rollout restart deployment ${APP_NAME} -n default - # 可选:部署完成后删除临时文件 + # 可选:清理临时文件 rm -f /tmp/deploy.yaml CMD \ No newline at end of file diff --git a/deploy.yaml b/deploy.yaml index 0bb7300..28caf93 100644 --- a/deploy.yaml +++ b/deploy.yaml @@ -1,27 +1,27 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: admin-ui # 固定为项目名,不再用变量 + name: ${APP_NAME} namespace: default labels: - app: admin-ui + app: ${APP_NAME} spec: replicas: 1 selector: matchLabels: - app: admin-ui + app: ${APP_NAME} template: metadata: labels: - app: admin-ui + app: ${APP_NAME} spec: containers: - - name: admin-ui - # 替换为你的镜像仓库地址(如docker.io/yourname/admin-ui) - image: 116.204.74.41:3000/red-future/admin-ui:latest # 或固定用tag,如v1.0 + - name: ${APP_NAME} + # 临时用公共镜像测试(避免依赖私有镜像),后续替换为你的镜像 + image: nginx:latest imagePullPolicy: Always ports: - - containerPort: 80 # 该项目实际端口 + - containerPort: 80 resources: requests: cpu: 100m @@ -33,13 +33,13 @@ spec: apiVersion: v1 kind: Service metadata: - name: admin-ui-service + name: ${APP_NAME}-service namespace: default spec: type: NodePort selector: - app: admin-ui + app: ${APP_NAME} ports: - port: 80 targetPort: 80 - nodePort: 30000 # 该项目专属端口(如其他项目用30002) \ No newline at end of file + nodePort: 30001 # 30000-32767区间内的端口 \ No newline at end of file