Quay v3.5.1 部署踩坑

_Waffle發表於2022-01-12

官方文件好久沒更新了 拿來部署了一個最新的軟體 把我坑死了

首先你需要一個podman OR docker 官方用podman 本文同

設定 Postgres

官方推薦資料庫

$ mkdir -p $QUAY/postgres
$ setfacl -m u:26:-wx $QUAY/postgres
$ sudo podman run -d --rm --name postgresql \
	-e POSTGRES_USER=user \
	-e POSTGRES_PASSWORD=pass \
	-e POSTGRES_DB=quay \
	-p 5432:5432 \
	-v $QUAY/postgres:/var/lib/postgresql/data:Z \
	postgres:10.12

Quay需要pg_trgm安裝模組,所以我們可以這樣做:

$ sudo podman exec -it postgresql /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U user'
CREATE EXTENSION

獲取一下Postgre的ip 後面會用

$ sudo podman inspect -f "{{.NetworkSettings.IPAddress}}" postgresql
10.88.0.13

設定 Redis

$ sudo podman run -d --rm --name redis \
        -p 6379:6379 \
        redis:5.0.7 \
        --requirepass strongpassword

同樣獲取一下ip後面會用上

$ sudo podman inspect -f "{{.NetworkSettings.IPAddress}}" redis
10.88.0.14

構建 Quay 配置

我們執行帶有執行時標誌的 Quay 映像,以啟動接受密碼“secret”的 ConfigTool:

$ sudo podman run --rm -it --name quay_config -p 8080:8080 quay.io/projectquay/quay config secret
  1. 在瀏覽器中開啟https://localhost:8443
  2. 使用 quayconfig/secret 登入
  3. 開始新的登錄檔設定

資料庫設定

  1. 選擇 Postgres 資料庫型別...
  2. host:(輸入你之前獲取的postgres IP地址)
  3. 使用者: user
  4. 密碼: pass
  5. 資料庫: quay

打Validate Database Settings。這將開始自動設定您的資料庫。
在下一個螢幕上,設定 Quay 超級使用者帳戶。單擊Create Super User。
在主配置螢幕上,您將需要填寫幾個欄位:

伺服器配置

  1. 供Server Hostname使用quay:8080(或者localhostUI 會抱怨)。
  2. 對於TLS選擇None (Not for Production)- 確認您已在上述步驟中包含埠號。

Redis

  1. 對於Redis Hostname較早獲得您的Redis的容器輸入IP地址。
  2. 用於Redis password輸入strongpassword或啟動 redis 容器時使用的任何內容。

點選Save Configuration Changes頁面底部的。彈出視窗應顯示已確認的設定。
在下一個螢幕上,您可以將 Quay config.yaml 下載為 gzip 壓縮包。單擊Download Configuration- 我們假設它進入 $DOWNLOADS。
解壓配置以便 Quay 可以使用它:

$ mkdir QUAY/config
$ cp quay-config.tar.gz QUAY/config
$ cd QUAY/config
$ tar xvf quay-config.tar.gz

在這裡,讓我們設定一個目錄來儲存映象:

$ mkdir QUAY/storage
$ setfacl -m u:1001:-wx QUAY/storage

使用CTRL-C(或podman stop取決於您如何執行它)停止配置工具——我們不再需要它了。

執行Quay映象

$ sudo podman run --rm -p 8080:8080 \
   --name=quay \
   --privileged=true \
   -v ./QUAY/config:/quay-registry/conf/stack:Z \
   -v ./QUAY/storage:/quay-registry/datastorage:Z \
   -d quay.io/projectquay/quay:latest

必要時檢查日誌

podman logs -f quay

END.