通过 docker container logs nginx,查看容器日志:
Error response from daemon: configured logging driver does not support reading
我证书用的是 windows 证书服务器签发的证书,导出来 pfx 格式后,通过 OpenSSL 进行转换的:
openssl pkcs12 -in [yourfile.pfx] -nocerts -out [drlive.key]
openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [drlive.crt]
得到证书后,将证书上传到 /data/certs 目录;
然后修改 harbor.yml 文件,并更改了:
hostname: harbor.test.local
certificate: /data/certs/sh.crt
private_key: /data/certs/sh.key
然后通过 install.sh 脚本进行部署。在安装过程也没有看到什么警告或错误,并且顺序看到:
Creating harbor-core ...
Creating harbor-jobservice ...
Creating nginx ...
✔ ----Harbor has been installed and started successfully.----
我用的安装包是离线安装包。
这个是怎么回事?
我不確定你是不是因為 cert key 是 root權限,導致container無法mount
我是使用下面方法
volumes:
- Cert_KEY_Path:YOUR_CONTAINER_KEY_PATH:ro
你是说证书文件的权限吗?刚刚看了,证书确实只有 root 用户有权限读写,其他用户权限为空。我更改了证书权限,其他用户可读,重新运行 install.sh 脚本,还是一样的。
这个是我 compose 的证书配置:
- /data/secret/cert:/etc/cert:z
因為是root權限
請在資料夾尾端使用 :ro
讓資料夾可以讀取
https://docs.docker.com/storage/volumes/#use-a-read-only-volume
请问这个需要在 harbor.yaml 文件哪里修改?我在里面就找到了一个 /data 的挂载。
- /data/secret/cert:/etc/cert:ro
這樣試試看
直接改 docker-compose 文件吗?
改了 docker-compose 文件,还是一样的结果。
你先進入你目前使用的container
檢查資料有沒有mount成功
假如有看到資料 那應該就是別的問題了
自簽憑證 可以考慮 make-ssl-cert generate-default-snakeoil
後續還有其他的log可看嗎
容器没有起来,一直在 restart 的状态。
我试了自签名的证书,竟然是好的
我沒接觸過轉換證書格式
我之前是用letsencrypt 生成證書後直接套用
所以這方面沒辦法給你太多幫助