0%

使用 Docker 建立 Testy 服務


好的,這就為您提供使用 Docker 建立 Testy 服務的步驟。Testy 是一個基於 Python (Django) 的開源測試管理工具,使用 Docker 可以大大簡化部署過程。

這個設定將包含兩個 Docker 容器:

  1. Testy 應用程式容器:運行 Testy 應用程式本身。
  2. PostgreSQL 資料庫容器:Testy 的後端資料庫(官方推薦,因為 SQLite 不適合生產環境)。

使用 Docker 建立 Testy 服務

第一步:準備專案結構

首先,建立一個專案目錄,並在其中建立 docker-compose.yml 檔案,這是 Docker Compose 的核心設定檔。

1
2
3
testy_docker_project/
├── docker-compose.yml
└── .env # 儲存敏感資訊,如資料庫密碼

第二步:建立 docker-compose.yml 檔案

開啟 docker-compose.yml 檔案並填入以下內容。這個檔案會定義我們的服務、網路和儲存卷。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# docker-compose.yml
version: '3.8'

services:
db:
image: postgres:15-alpine # 使用輕量級的 PostgreSQL 15 版本
container_name: testy_db
restart: unless-stopped
volumes:
- testy_db_data:/var/lib/postgresql/data # 將資料庫數據持久化到本地卷
environment:
POSTGRES_DB: ${DB_NAME} # 從 .env 讀取資料庫名稱
POSTGRES_USER: ${DB_USER} # 從 .env 讀取資料庫用戶名
POSTGRES_PASSWORD: ${DB_PASSWORD} # 從 .env 讀取資料庫密碼
PGDATA: /var/lib/postgresql/data/pgdata # 指定資料庫檔案路徑,避免權限問題
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
interval: 5s
timeout: 5s
retries: 5

testy:
image: gettesty/testy:latest # 使用 Testy 官方提供的 Docker 映像
container_name: testy_app
restart: unless-stopped
depends_on:
db:
condition: service_healthy # 確保資料庫服務健康後再啟動 Testy
ports:
- "8000:8000" # 將容器的 8000 端口映射到主機的 8000 端口
environment:
DJANGO_SETTINGS_MODULE: config.settings.production # 指定生產環境設定
DATABASE_URL: postgresql://${DB_USER}:${DB_PASSWORD}@db:5432/${DB_NAME} # 資料庫連線字串
SECRET_KEY: ${DJANGO_SECRET_KEY} # Django 應用的密鑰
# 如果需要其他 Testy 環境變數,可以在此添加,例如 SMTP 設置等
# EMAIL_HOST: your_smtp_host
# EMAIL_PORT: your_smtp_port
# EMAIL_HOST_USER: your_smtp_user
# EMAIL_HOST_PASSWORD: your_smtp_password
# DEFAULT_FROM_EMAIL: your_email
# SERVER_EMAIL: your_email
# ALLOWED_HOSTS: "${TESTY_ALLOWED_HOSTS}" # 允許的主機,例如 "localhost,127.0.0.1,your.domain.com"
# CORS_ALLOWED_ORIGINS: "${TESTY_CORS_ALLOWED_ORIGINS}" # 允許的跨域來源

volumes:
testy_db_data: # 定義一個 Docker 卷用於資料庫數據持久化

第三步:建立 .env 檔案

testy_docker_project 目錄下建立 .env 檔案,用來儲存環境變數。請務必替換為您自己的安全密碼和金鑰。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# .env
# PostgreSQL 資料庫配置
DB_NAME=testy_db_name # 自定義資料庫名稱
DB_USER=testy_user # 自定義資料庫用戶名
DB_PASSWORD=your_strong_db_password # **請替換為一個強密碼**

# Django 應用程式配置
DJANGO_SECRET_KEY=your_very_secret_django_key # **請替換為一個長且隨機的密鑰**
# 你可以使用 Python 生成:
# import secrets; print(secrets.token_urlsafe(50))

# 允許的主機 (使用逗號分隔,例如 "localhost,127.0.0.1,your.domain.com")
TESTY_ALLOWED_HOSTS=localhost,127.0.0.1

# 允許的 CORS 來源 (使用逗號分隔,例如 "http://localhost:8000,http://your.frontend.com")
# 如果沒有前端分離,可以省略或設定為 Testy 的 URL
TESTY_CORS_ALLOWED_ORIGINS=http://localhost:8000

第四步:啟動服務

testy_docker_project 目錄下打開終端機,執行以下命令:

1
docker compose up -d
  • docker compose up:啟動 docker-compose.yml 中定義的所有服務。
  • -d:表示在背景運行 (detached mode)。

這將會:

  1. 下載 PostgreSQL 和 Testy 的 Docker 映像。
  2. 創建並啟動 testy_db 容器。
  3. 等待 testy_db 容器的健康檢查通過。
  4. 創建並啟動 testy_app 容器。
  5. Testy 容器啟動時,會自動執行資料庫遷移(因為映像已經包含這個啟動腳本),初始化資料庫結構。

第五步:訪問 Testy 服務

服務啟動後,您應該可以透過瀏覽器訪問 Testy:

  • 網址http://localhost:8000

第一次訪問時,您會看到 Testy 的登入/註冊頁面。按照提示建立您的第一個管理員帳戶。

常用 Docker Compose 命令

  • 查看運行中的服務
    1
    docker compose ps
  • 查看服務日誌
    1
    2
    docker compose logs -f testy  # 查看 Testy 應用程式的即時日誌
    docker compose logs -f db # 查看資料庫的即時日誌
  • 停止服務
    1
    docker compose stop
  • 停止並移除容器、網路和卷(注意:這會刪除您的資料庫數據,請謹慎使用於生產環境):
    1
    docker compose down -v
    如果您只想移除容器和網路,但不刪除數據卷:
    1
    docker compose down

    進階考量 (生產環境)

對於生產環境部署,您可能需要考慮:

  • HTTPS/SSL:在 Testy 前面設置一個反向代理(如 Nginx 或 Caddy),並配置 SSL 證書以啟用 HTTPS。
  • 資料庫備份:定期備份 testy_db_data 卷中的 PostgreSQL 資料。
  • 資源限制:在 docker-compose.yml 中為服務設定 CPU 和記憶體限制。
  • 日誌管理:配置 Docker 的日誌驅動,將日誌導向到集中式日誌系統。
  • 自動化部署:將 Docker Compose 命令整合到您的 CI/CD 流程中。

這個 Docker Compose 設定提供了一個快速且隔離的 Testy 運行環境,讓您可以輕鬆地啟動和管理您的測試管理服務。

要在手機上查詢您的勞工退休金 (勞退) 個人專戶資料,勞動部勞工保險局提供了多種方便的管道。由於勞保局原有的「勞保局行動服務APP」已於 111 年 9 月 1 日下架,現在主要是透過網頁版e化服務系統搭配不同的身分驗證方式來進行查詢。


手機查詢勞退的管道

1. 透過勞保局e化服務系統(行動電話認證)

這是目前最推薦且最方便的手機查詢方式,無需讀卡機或額外下載App。

準備工具:

  • 本人申辦的月租型手機門號:必須是您個人名下的門號,不支援預付卡。手機或平板需透過 4G 或 5G 行動網路連線(首次申請時需關閉 Wi-Fi)。
  • 身分證號
  • 健保卡號

操作步驟:

  1. 使用手機瀏覽器,進入勞動部勞工保險局的「個人網路試算及查詢作業」頁面。
  2. 選擇登入方式為「行動電話認證」。
  3. 依照網頁指示,輸入您的身分證號健保卡號本人持有電信業者門號資料,並設定一組憑證密碼(此密碼供未來登入使用)。
  4. 核對資料並閱讀條款後勾選同意,開始進行身分驗證。
  5. 認證成功後,系統會將此「行動電話認證」服務綁定到您目前使用的裝置和瀏覽器。
  6. 下次使用時,只需輸入身分證號、出生日期、姓名、憑證密碼即可登入查詢。
  7. 登入後,點選「查詢作業」>「勞工退休金個人專戶資料」,即可查到您的勞退累計金額、收益分配、提繳異動等詳細資訊。

2. 透過勞保局e化服務系統(行動自然人憑證認證)

此方法需要您預先註冊並啟用「行動自然人憑證」。

準備工具:

  • 手機或平板電腦
  • 內政部「行動自然人憑證APP」 (需已下載並完成註冊與綁定行動裝置)
  • 身分證號、出生日期

操作步驟:

  1. 確保您的手機已安裝並註冊好「行動自然人憑證APP」。
  2. 使用手機瀏覽器,進入勞動部勞工保險局的「個人網路試算及查詢作業」頁面。
  3. 選擇登入方式為「行動自然人憑證」。
  4. 輸入您的身分證號、出生日期及圖形驗證碼,完成認證後即可登入。
  5. 登入後,點選「查詢作業」>「勞工退休金個人專戶資料」。

3. 透過勞保局 LINE 官方帳號

勞保局也提供了 LINE 官方帳號的查詢服務,操作相對簡便。

操作步驟:

  1. 在 LINE 搜尋「**@bligovtw」或直接搜尋「勞動部勞工保險局**」並加入官方帳號好友。
  2. 進入官方帳號後,依照指示進行身份認證(通常會引導您到網頁版 e化服務系統,透過自然人憑證或手機認證來完成)。
  3. 身份認證成功並綁定後,即可在 LINE 帳號內點擊相關選項,查詢您的勞工退休金資訊、投保紀錄等。

查詢內容

透過以上方式,您可以查詢到:

  • 勞工退休金個人專戶的累積總金額
  • 每月提繳紀錄
  • 歷年收益分配金額
  • 雇主提繳金額與收益
  • 個人自願提繳金額與收益
  • 以及勞保、就保、職災保險等相關資訊。

小提醒:

  • 首次使用「行動電話認證」時,請務必確認您的手機是連線在 4G/5G 行動網路下,並關閉 Wi-Fi,這是電信業者身分驗證的必要條件。
  • 保護好您的個人資料和憑證密碼,避免資料外洩。
  • 如果在使用過程中遇到任何問題,可以撥打勞保局服務專線 (02)2396-1266 轉分機 3400。

選擇最適合您的方式,隨時掌握自己的勞退資訊吧!