开发者工具整合台湾秒解云服务器容器部署与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流水线实例

相关文章
  • 台湾云服务器厂商:选择最佳云服务供应商的首选之地

    台湾云服务器厂商:选择最佳云服务供应商的首选之地 云计算是当今科技行业的热门话题,越来越多的企业选择将其业务迁移到云端。在云计算领域,云服务器是关键的基础设施之一。而在选择云服务器供应商时,台湾成为了许多企业的首选之地。 台湾作为亚洲地区的科技中心,拥有先进的技术和优秀的云计算基础设施。以下是选择台湾云服务器厂商的几个优势:
    2025年2月18日
  • 台湾VPS高防云主机,按时计费,强力防御

    台湾VPS高防云主机,按时计费,强力防御 随着互联网的发展,越来越多的企业和个人开始关注网络安全问题。由于网络攻击日益猖獗,为了保护自己的信息和数据安全,选择一款高防云主机成为了极为重要的决策。 在众多高防云主机中,台湾VPS是一种备受推崇的工具。台湾地理位置靠近东北亚地区,在网络通信时延较低,与大陆有着良好的网络连接。同时,台湾拥有丰富的高端
    2024年11月27日
  • 台湾人能备案云服务器的法律规定与流程

    台湾人备案云服务器的法律规定与流程 在数字化时代,越来越多的企业和个人选择使用云服务器来进行数据存储和管理。对于台湾地区的用户来说,了解备案的法律规定及流程显得尤为重要。本文将为您详细解读这一过程。 以下是本文的三个精华要点: 台湾地区对云服务器备案的法律背景及其重要性。 备案流程的详细步骤及所需材料。 备案常见问
    2025年8月26日
  • 选择台湾vps云主机高防御云空间的注意事项

    随着互联网的发展,越来越多的企业和个人开始关注云主机的使用。其中,台湾vps云主机由于其高防御性能,成为了众多用户的首选。然而,在选择台湾vps云主机高防御云空间时,有许多注意事项需要用户关注。本文将详细介绍这些注意事项,并推荐一些值得信赖的服务商。 首先,选择台湾vps云主机时,用户需要关注其技术支持。良好的技术支持可以确保在遇到问题时,能
    2025年8月16日
  • 台湾云主机:多种选择,了解台湾服务器的云主机

    台湾云主机:多种选择,了解台湾服务器的云主机 云主机是一种基于云计算技术的虚拟服务器,它提供了弹性、可扩展、高可用性的计算资源。在选择云主机时,台湾的云主机是一个不错的选择。本文将介绍台湾云主机的多种选择,帮助您更好地了解台湾服务器的云主机。 台湾地理位置优越,网络环境稳定,拥有先进的基础设施和技术支持,使得台湾云主机具有以下优
    2025年1月15日
  • 台湾VPS试用物理机优选方案

    台湾VPS试用物理机优选方案 在选择VPS(虚拟专用服务器)时,台湾地区是一个不错的选择。本文将介绍台湾VPS试用物理机的优选方案,帮助您更好地选择适合自己需求的服务器。 首先要考虑的是服务器的性能。台湾VPS试用物理机通常提供不错的性能,能够满足大部分网站的需求。您可以根据自己的需求选择不同性能的服务器,确保网站运行顺畅。
    2025年6月5日
  • 免费试用台湾VPS云主机

    免费试用台湾VPS云主机 VPS云主机是一种虚拟专用服务器,通过虚拟化技术将一台物理服务器分割成多个独立的虚拟服务器。每个VPS云主机都具有独立的操作系统、独立的硬盘空间、独立的内存和处理器资源,可以像独立服务器一样运行应用程序和服务。 台湾地理位置优越,拥有稳定
    2025年3月16日
  • 50元的台湾VPS是否值得选择,用户真实反馈

    50元的台湾VPS是否值得选择? 在数字化时代,选择合适的VPS(虚拟私人服务器)显得尤为重要,尤其是针对预算有限的小企业或个人用户。本文将深入探讨一款售价仅为50元的台湾VPS是否值得选择,并分享真实用户的反馈与经验。以下是我们总结的三大要点: 1. 价格优势 2. 性能与稳定性 3. 用户服务与支持 首先,让我
    2025年11月23日
  • 台湾IPFS服务器配置云空间

    台湾IPFS服务器配置云空间 IPFS是一种分布式文件系统,旨在创建持久且分布式的存储和共享数据的方法。它使用内容寻址来对文件进行唯一标识,而不是使用传统的URL。IPFS可以提供更安全、高效和可靠的云空间解决方案。 台湾作为亚洲地区的网络枢纽,拥有出色的网络基础设施和高速互联
    2025年2月18日