我正在使用 Synology KMU NAS。在该 NAS 上,我安装了 GitLab Docker 容器,但该容器似乎存在错误。该错误导致软件拒绝发送未经身份验证的管理电子邮件。有一个环境变量 SMTP_AUTHENTICATION 传递给 GitLab,但似乎未经过身份验证的配置(根据维护者的说法,omnibus-gitlab 支持该配置)未正确传递,而是返回到“登录”。
由于我们的中央 IT 服务仅提供未经身份验证的 SMTP 服务器(至少对于非个人用途而言),我需要处理该问题直到 Synology(可能)将来修复该问题。
我的想法是修改 Docker 容器,以便它将正确的选项传递给 GitLab。我猜这个错误很简单。但是我以前从未使用过 Docker 容器。
有没有办法修改docker容器?我需要做什么?
答案1
您可以创建自己的容器,该容器取决于要修改的容器。我曾经对 mariadb 容器这样做过,该容器无法启动 galera 集群,因为测试所需的二进制文件位于容器中的错误位置。
要创建自己的容器,只需几个步骤。我在想要启动容器的主机上运行了此操作,不确定这是否适用于你的 NAS:
- 创建一个空目录并进入该目录
Dockerfile
在该目录内创建一个名为FROM kolla/ubuntu-binary-mariadb:queens COPY resolveip /usr/sbin/resolveip CMD ["dumb-init", "--single-child", "--", "kolla_start"]
(
FROM
:您想要继承的图像;COPY
您想要复制到图像中的修改过的文件;CMD
原始图像的启动命令。您可以使用 轻松找到它docker inspect CONTAINER
。)
要将文件复制出容器进行修改,您可以使用:$ docker cp CONTAINER:/path/to/file .
构建容器:
docker build --tag=kolla/ubuntu-binary-mariadb:queens .
我需要保留原始名称和标签,因为该图像与其他图像一起配置。由于新创建的映像在本地可用,并且比 docker 存储库中的映像更新,因此在部署期间会自动使用它。如果您不需要这个,您可以给它起一个自己的名字,然后从该图像启动一个容器。