差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:gitlabtips [2024/11/16 22:15] – docker compose (含 ACME 自動更新 SSL 憑證) jonathan | tech:gitlabtips [2025/05/05 11:03] (目前版本) – [docker compose (含 ACME 自動更新 SSL 憑證)] jonathan | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| * 安裝環境 : Alpine 3.20 + docker compose | * 安裝環境 : Alpine 3.20 + docker compose | ||
| - | ===== docker compose (無 SSL 憑證) ===== | + | ===== docker compose (非正式 |
| * docker-compose.yml <cli> | * docker-compose.yml <cli> | ||
| services: | services: | ||
| 行 48: | 行 48: | ||
| chmod 777 ssl | chmod 777 ssl | ||
| </ | </ | ||
| - | * 編輯 docker-compose.yml | + | * 編輯 docker-compose.yml |
| - | services: | + | |
| - | gitlab: | + | * 編輯 cloudflare.ini 檔案 Exp. {{repo> |
| - | image: gitlab/ | + | |
| - | container_name: | + | |
| - | restart: always | + | |
| - | hostname: ' | + | |
| - | environment: | + | |
| - | GITLAB_OMNIBUS_CONFIG: | + | |
| - | external_url 'https://${DOMAIN_NAME}' | + | |
| - | letsencrypt[' | + | |
| - | nginx[' | + | |
| - | nginx[' | + | |
| - | nginx[' | + | |
| - | nginx[' | + | |
| - | ports: | + | |
| - | - ' | + | |
| - | - ' | + | |
| - | - ' | + | |
| - | volumes: | + | |
| - | - './config:/etc/ | + | |
| - | | + | |
| - | - './data:/ | + | |
| - | | + | |
| - | shm_size: ' | + | |
| - | networks: | + | |
| - | - gitlab-network | + | |
| - | + | ||
| - | | + | |
| - | image: certbot/ | + | |
| - | container_name: | + | |
| - | volumes: | + | |
| - | - ./ssl:/etc/letsencrypt | + | |
| - | - ./cloudflare.ini:/etc/secrets/cloudflare.ini: | + | |
| - | entrypoint: "/bin/sh" | + | |
| - | command: | + | |
| - | - -c | + | |
| - | - | | + | |
| - | trap exit TERM; | + | |
| - | while :; do | + | |
| - | certbot certonly --dns-cloudflare --dns-cloudflare-credentials | + | |
| - | -d ${DOMAIN_NAME} --non-interactive --agree-tos \ | + | |
| - | -m ${CF_EMAIL} || true; | + | |
| - | + | ||
| - | if [ -f / | + | |
| - | cp / | + | |
| - | cp / | + | |
| - | chmod 644 / | + | |
| - | + | ||
| - | apk add --no-cache curl | + | |
| - | echo " | + | |
| - | until curl -s http://gitlab: | + | |
| - | sleep 5 | + | |
| - | done | + | |
| - | + | ||
| - | echo " | + | |
| - | curl -s --show-error --fail -X POST http://gitlab:80/-/api/v4/admin/application/ | + | |
| - | fi | + | |
| - | sleep 24h; | + | |
| - | done | + | |
| - | networks: | + | |
| - | - gitlab-network | + | |
| - | + | ||
| - | networks: | + | |
| - | gitlab-network: | + | |
| - | driver: bridge | + | |
| - | </file> | + | |
| - | * 編輯 .env 檔案 Exp. < | + | |
| - | DOMAIN_NAME=gitlab.ichiayi.com #Gitlab 網址 | + | |
| - | [email protected] #Cloudflare 帳號 | + | |
| - | </ | + | |
| - | * 編輯 | + | |
| - | dns_cloudflare_api_token = kvm8***********************************o | + | |
| - | </ | + | |
| * 設定 .env 與 cloudflare.ini 權限 <cli> | * 設定 .env 與 cloudflare.ini 權限 <cli> | ||
| chmod 600 .env | chmod 600 .env | ||