开发者工具整合台湾秒解云服务器容器部署与CI/CD流水线实例

2026年6月17日

1.

前言與目標說明

(1) 本文目標:建立一個可在「台湾秒解云服务器」上運行的容器化應用,並用 CI/CD 自動化建置、推送與部署。
(2) 假設條件:你具備雲主機帳號、SSH 存取權、Git 倉庫(例如 GitHub/GitLab)、Docker 基本知識。

2.

準備工作與先決條件

(1) 在秒解雲主控台建立一台 Linux VM(建議 Ubuntu 22.04)並開放 22/80/443、以及應用埠。
(2) 在本地生成 SSH 金鑰:ssh-keygen -t ed25519 -C "you@example.com",並將公鑰加入雲主機 authorized_keys。
(3) 建議準備 Docker Hub 或私有 Registry(Harbor/Artifactory),以及一個 CI 帳號(GitHub Token/GitLab Runner token)。

3.

連線與環境初始化

(1) SSH 連線範例:ssh -i ~/.ssh/id_ed25519 ubuntu@your.server.ip。
(2) 更新系統並安裝 Docker 與 docker-compose: sudo apt update && sudo apt upgrade -y sudo apt install -y ca-certificates curl gnupg lsb-release curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER sudo apt install -y docker-compose-plugin (3) 登出再登入或重啟 ssh 會話以讓 docker 群組生效。

4.

建立範例應用與 Dockerfile

(1) 範例應用:建立一個簡單 Node.js 應用 server.js 與 package.json。
(2) Dockerfile 範例:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node","server.js"]
(3) 本地測試:docker build -t yourapp:local . && docker run -p 3000:3000 yourapp:local。

5.

設定 Docker Registry 與憑證管理

(1) 若使用 Docker Hub:docker login -u USERNAME -p TOKEN。
(2) 若使用私有 Registry(例如 Harbor):在雲端或本地安裝,取得憑證或建立 robot 帳號。
(3) CI 要存取 Registry 時,把登入密鑰放在 CI Secret(如 GitHub Secrets)中,命名為 DOCKER_USERNAME/DOCKER_PASSWORD 或 DOCKER_TOKEN。

6.

建立 GitHub Actions CI/CD 範例

(1) 在專案建立 .github/workflows/ci-cd.yml:
name: CI/CD
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Build image
      run: docker build -t ghcr.io/${{ github.repository_owner }}/myapp:${{ github.sha }} .
    - name: Login to registry
      uses: docker/login-action@v2
      with:
        registry: ghcr.io
        username: ${{ secrets.GHCR_USERNAME }}
        password: ${{ secrets.GHCR_TOKEN }}
    - name: Push image
      run: docker push ghcr.io/${{ github.repository_owner }}/myapp:${{ github.sha }}
(2) 這裡可替換為 Docker Hub,或把映像標籤改成最新 (latest) 與 SHA 並同時推送。

7.

部署腳本與遠端自動化(SSH 部署)

(1) 在 repo 建立 deploy.sh:
#!/bin/bash
set -e
IMAGE=$1
ssh -o StrictHostKeyChecking=no ubuntu@your.server.ip << EOF
docker pull $IMAGE
docker stop myapp || true
docker rm myapp || true
docker run -d --name myapp -p 80:3000 $IMAGE
EOF
(2) 在 CI 裡新增步驟使用 SSH Private Key(儲存在 CI secret)呼叫 deploy.sh,或直接在 Actions 使用 appleboy/ssh-action 來執行遠端命令。

8.

使用 docker-compose 或 Kubernetes(選擇)

(1) docker-compose.yml 基本範例:
version: '3.8'
services:
  web:
    image: ghcr.io/owner/myapp:latest
    restart: always
    ports:
      - "80:3000"
    environment:
      - NODE_ENV=production
(2) 若使用 Kubernetes,則撰寫 Deployment/Service YAML,並在 CI 中使用 kubectl apply --kubeconfig /path/to/kubeconfig;可將 kubeconfig 存為 CI secret 並在 runner 中臨時寫入。

9.

監控、日誌與回滾策略

(1) 監控:可用 Prometheus + Grafana 或簡單的健康檢查 endpoint,由 Nginx/Traefik 做反向代理與健康路由。
(2) 日誌:使用 docker logs 或安裝 Filebeat/ELK 將日誌集中化。
(3) 回滾:CI 建置成功後保留舊版映像標籤,部署腳本應支援傳入映像標籤以回滾到先前版本。

10.

安全性與最佳實務建議

(1) 切勿在 repository 中暴露金鑰,所有敏感值放在 CI secret 與雲端憑證管理。
(2) 使用非 root 使用者運行容器、啟用防火牆(ufw)、限制 SSH 只允許金鑰登入。
(3) 定期更新基底映像並掃描映像漏洞(例如使用 Trivy)以降低風險。

11.

問:如何在部署時做到零停機(zero-downtime)?

(1) 答:採用藍綠部署或滾動更新。對於 docker-compose,可以啟用反向代理(如 Traefik/Nginx)並用兩組服務交替替換,再切換路由。
(2) 對於 Kubernetes,使用 Deployment 的 rolling update 策略與 readinessProbe,確保新 Pod 就緒後才移除舊 Pod。

12.

問:如果 CI 無法登入遠端主機該如何排查?

(1) 答:首先確認 CI 中的私鑰是否正確(格式與行尾),檢查雲主機 authorized_keys 是否包含對應公鑰,並檢查安全群組/防火牆是否允許 CI runner IP 的 SSH 連線。
(2) 可在本地模擬 CI 環境使用相同金鑰與帳號嘗試連線,查看 ssh -v 詳細輸出。

13.

問:我想從 docker-compose 換到 Kubernetes,有哪些重點步驟?

(1) 答:主要步驟包括:撰寫 Deployment/Service/Ingress YAML,建立映像 Pull Secret(若是私有 Registry),配置 ConfigMap/Secret,並在 CI 中加入 kubectl 與 kubeconfig 的管理流程。
(2) 測試建議先在本地或小型叢集(如 Kind / k3s)驗證,再移轉到生產叢集,逐步替換流量以降低風險。


来源:开发者工具整合台湾秒解云服务器容器部署与CI/CD流水线实例

相关文章
  • 阿里云台湾云服务器提供快速、稳定的云计算服务

    阿里云台湾云服务器提供快速、稳定的云计算服务 随着互联网的快速发展,云计算作为一种新型的网络计算模式,受到越来越多企业的青睐。云计算服务可以帮助企业降低IT成本,提高效率,实现灵活的资源配置。阿里云作为国内领先的云计算服务提供商,不仅在国内市场占有一席之地,还在海外市场拥有广泛的用户群体。 阿里云在台湾设立了云服务器中心,为当
    2025年5月28日
  • 台湾VPS无限制内容,完美满足你的需求

    台湾VPS无限制内容,完美满足你的需求 VPS即虚拟专用服务器,是一种虚拟化技术,将一台物理服务器分割成多个虚拟服务器,每个虚拟服务器具有独立的操作系统和资源。VPS提供了更高的灵活性和安全性,适合个人用户和企业用户。 台湾作为亚洲地区的重要互联网枢纽,拥有优质的网络基础设施和稳定的网络连接,成为了许多用户首选的VPS托管地。
    2025年3月27日
  • 台湾高性能服务器云空间:提供优质的云服务

    台湾高性能服务器云空间:提供优质的云服务 随着云计算技术的不断发展,越来越多的企业和个人开始寻找可靠的云服务提供商。台湾高性能服务器云空间以其出色的性能和优质的服务而闻名,成为了众多用户的首选。 台湾高性能服务器云空间提供的服务器采用最先进的硬件设备,拥有卓越的性能和稳定性。无论是处理大数据、进行复杂的计算任务,还是运行高流
    2025年1月20日
  • 台湾vps优惠活动合集与长期折扣解析攻略

    台湾vps优惠活动合集与长期折扣解析攻略 1. 精华1:掌握台湾vps的促销节奏——短期活动+年付折扣可以叠加,年付常是最划算的长期策略。 2. 精华2:识别真实优惠与虚假噱头——看服务商SLA、带宽与IPv4配额,别只看首月价格。 3. 精华3:实战省钱技巧——使用新用户券、节日活动、社群内部码,并结合试用期与快照备份规避风险
    2026年5月1日
  • 台湾服务器云空间:无限扩展的存储解决方案

    台湾服务器云空间:无限扩展的存储解决方案 近年来,随着互联网技术的不断发展和普及,云计算已经成为企业存储解决方案的重要组成部分。针对各类企业的需求,台湾服务器云空间应运而生,并且在市场上快速获得了广泛的认可和应用。 台湾服务器云空间是一种基于云计算技术实现的存储解决方案。它将企业的数据存储在远程服务器上,通过网络进行访问和管理。相比传统的本地存
    2024年11月27日
  • 台湾VPS的高防御特性,保护你的网络安全

    台湾VPS:网络安全的坚实堡垒 在当今数字化时代,网络安全已成为每个企业和个人必须重视的问题。特别是针对DDoS攻击等网络威胁,拥有一个高防御的VPS(虚拟专用服务器)显得尤为重要。台湾VPS以其独特的高防御特性,成为了众多用户的优先选择。下面,我们将深入探讨台湾VPS的高防御特性,帮助你在网络安全上做出明智的决策。 精华摘要: 1
    2025年9月28日
  • 台湾vps续费合约解读 服务等级与带宽变更条款如何影响费用

    1.概述:為何SLA與帶寬條款在續費時至關重要 - 續費合約常包含最低服務等級(SLA)與帶寬保證條款,直接影響成本與可用性。 - SLA通常以可用率(例如99.95%)與修復時間(RTO/RPO)呈現。 - 帶寬條款包括承諾帶寬、上限與超量時的計費方式。 - 台灣市場常見以月付或年付方式計價,續費折扣與原始合約不同。 - 未留意條款會導致續費
    2026年7月25日
  • 台湾服务器云主机,性能优越,稳定可靠

    台湾服务器云主机,性能优越,稳定可靠 随着互联网的发展,越来越多的企业和个人开始关注云主机的选择。在选择云主机时,性能和稳定性是最重要的考虑因素之一。而台湾服务器云主机因其性能优越、稳定可靠而备受青睐。 台湾作为亚洲重要的互联网枢纽,拥有先进的网络基础设施和通信技术,为台湾服务器提供了得天独厚的优势。台湾服务器在数据传输速度、
    2025年6月27日
  • 台湾节点VPS:最佳选择

    台湾节点VPS:最佳选择 在选择虚拟专用服务器(VPS)时,台湾节点VPS是一个备受推崇的选择。它不仅提供了稳定的网络连接和高效的性能,还具有许多其他优势。本文将为您介绍为什么台湾节点VPS是最佳选择。 台湾节点VPS提供了稳定的网络连接,这对于在线业务至关重要。无论您是运行网站、应用程序还是游戏服务器,稳定的网络连接都可以确保
    2025年6月24日