我通过Docker容器中的Synology NAS(DSM 5.2)上的官方GitLab软件包安装了GitLab。
我现在想通过https而不是http访问Webinterface。我在几个帖子中看到,可以使用一些泊坞魔法,但没有找到任何详细说明。
任何人都可以解释如何实现这一目标?
遗憾的是,这不是违约。
你还没有说明你正在使用哪个gitlab图像:
最常见的容器映像已包含有关如何启用SSL的详细信息的说明:
使用DSM6,现在可以使用dsm docker接口进行更改(除了生成证书):
1)创建密钥/证书:
mkdir /volume1/docker/gitlab/certs
cd /volume1/docker/gitlab/certs
openssl genrsa -out gitlab.key 2048
openssl req -new -key gitlab.key -out gitlab.csr
openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt
openssl dhparam -out dhparam.pem 2048
chmod 400 gitlab.key
2)设置gitlab docker环境:
Crami的说明通过软件包安装为我工作(sameersbn / gitlab:7.9.3)。你必须:
mkdir /volume1/docker/gitlab/certs
cd /volume1/docker/gitlab/certs
openssl genrsa -out gitlab.key 2048
openssl req -new -key gitlab.key -out gitlab.csr
openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt
openssl dhparam -out dhparam.pem 2048
chmod 400 gitlab.key
/usr/syno/etc/packages/Docker/synology_gitlab.config
编辑配置文件。它是一个JSON文件而不是命令行,但很容易看到要更改/添加的内容。你需要添加:
{
"key" : "GITLAB_HTTPS",
"value" : "true"
},
{
"key" : "SSL_SELF_SIGNED",
"value" : "true"
},
以及在同一文件中从80而不是443的端口绑定:
{
"container_port" : 443,
"host_port" : 30000,
"type" : "tcp"
},
我设法在NAS上创建一个新的docker容器,所有工作都像我想要的那样。
你必须像gitlab包的描述一样创建ssl证书,如下所示:
mkdir /volume1/docker/gitlab/certs
cd /volume1/docker/gitlab/certs
openssl genrsa -out gitlab.key 2048
openssl req -new -key gitlab.key -out gitlab.csr
openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt
openssl dhparam -out dhparam.pem 2048
chmod 400 gitlab.key
然后删除并重新创建容器:
docker rm synology_gitlab
docker run --name synology_gitlab -d --link synology_gitlab_redis:redisio \
--publish 30001:22 --publish 30080:80 --publish 30000:443 \
--env "GITLAB_HTTPS=true" --env "SSL_SELF_SIGNED=true" \
--env "GITLAB_HOST=nas.freestone.net" \
--env "GITLAB_PORT=30000" \
--env "GITLAB_SSH_PORT=30001" \
--env "[email protected]" \
--env "DB_TYPE=mysql" \
--env "DB_HOST=172.17.42.1" \
--env "DB_NAME=gitlab" \
--env "DB_USER=gitlab" \
--env "DB_PASS=yourdbpassword" \
--env "SMTP_ENABLED=true" \
--env "SMTP_DOMAIN=mailserver.example.com" \
--env "SMTP_HOST=mailserver.example.com" \
--env "SMTP_PORT=587" \
--env "[email protected]" \
--env "SMTP_PASS=mailpassword" \
--env "SMTP_OPENSSL_VERIFY_MODE=none" \
--volume /volume1/docker/gitlab/:/home/git/data \
sameersbn/gitlab:7.9.3
然后你应该重新开始运行。端口30000现在是https而不再是http。
在DSM 6.2.1上
我刚刚安装了这个,这里的一些答案帮助了我,但我仍然遇到了问题。所以我想分享我的发现:
我想使用已经在Synology DSM中生成的let-encrypt证书。
cp /usr/syno/etc/certificate/system/default/privkey.pem /volume1/docker/gitlab-ce/gitlab/certs/gitlab.key
cp /usr/syno/etc/certificate/system/default/fullchain.pem /volume1/docker/gitlab-ce/gitlab/certs/gitlab.crt
安装gitlab时调整到您选择的名称/文件夹(在我的情况下为“gitlab-ce”)openssl dhparam -out dhparam.pem 2048
我建议不要在NAS上这样做,因为它会很慢(你可能会增加你让病人等待的关键复杂性)/volume1/docker/gitlab-ce/gitlab/certs/
安装gitlab时调整到您选择的名称/文件夹(在我的情况下为“gitlab-ce”)GITLAB_HTTPS=true
SSL_SELF_SIGNED=false
5.2。将gitlab端口绑定(容器端口)从80更改为443如果Synology DSM(或您手动)创建新证书,此方法将在设定的时间(您在用户定义的脚本中选择)自动更新您生成的ssl证书。但这不是即时更新,但您可以从任务计划程序界面手动触发它。对于个人NAS解决方案,这种方法仍然是免费的。