差異處
這裏顯示兩個版本的差異處。
兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
tech:gitlabtips [2024/11/16 14:15] – docker compose (含 ACME 自動更新 SSL 憑證) jonathan | tech:gitlabtips [2025/05/05 03: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 |