当前位置: 首页 > 知识库问答 >
问题:

Docker中的编写器未通过私人回购的验证[重复]

干稳
2023-03-14

我有一个Docker容器,它正在提出一个项目,该项目在私人回购中具有依赖性。

Dockerfile正在复制我的无密码SSH密钥(权限为600

COPY docker/config/id_rsa /root/.ssh/
COPY docker/config/id_rsa.pub /root/.ssh/

复制后,将安装Composer依赖项:

RUN echo *** >> /etc/hosts \
  && composer config -a -g *URL *USER *PASS \
  && composer install --prefer-dist --no-progress

同时我删除了composer。锁定,确保以前的安装没有留下任何内容。

来自作曲家的仓库部分看起来像这样:

"repositories": [
    {
        "type": "vcs",
        "url": "git@***:***/libs/***.git",
        "options": {
            "ssl": {
                "local_cert": "~/.ssh/id_rsa.pub"
            }
        }
    },
],

在创建容器的过程中,我收到了一个错误消息

[RuntimeException]
Failed to execute git clone --mirror 'git@***:***/libs/***.git' '/root/.composer/cache/vcs/.../'
Cloning into bare repository '/root/.composer/cache/vcs/...'...
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

存储库确实存在,SSH键是有效的,最奇怪的是...如果我省略作曲家安装命令,输入创建的容器,什么都不改变,从终端手动执行,它会安装所有东西。

编辑:

如果在容器创建过程中密钥不可用,我也尝试手动在RUN命令中写入密钥,但这没有帮助。

我还尝试从Composer中删除“选项”部分

共有1个答案

刘松
2023-03-14

缺少的是RUN命令中的这些部分:

echo "xxx.xxx.xxx.xxx my_server_name" >> /etc/hosts

ssh-keyscan -t rsa my_server_name >> ~/.ssh/known_hosts 

一旦完成,我就可以从Composer中完全省略“options”部分

 类似资料:
  • 在github文档中找不到任何东西,在这里也找不到。但是我想知道是否可以有一个用于名为的私有存储库,该存储库可以访问,只有一个人可以访问存储库本身。 我记得曾经读过一些关于github页面总是公开的东西,但似乎再也找不到了。

  • 我正在尝试使用专用通道验证laravel echo。每次我收到“无法验证到private-U详细信息。1”。“basket_details”这是通道名称,1是参数。 当我使用公共频道时,一切都很完美。因此,我认为auth部分存在一些问题。 这是我的错误日志 这是我的事件文件。 这是我的频道。php 这是我的js文件 这是我的BroadcastServiceProvider 这是我的laravel

  • 在自动化的dockerhub构建过程中,是否有一种方法可以连接到多个私有git回购?我们正在构建golang应用程序,需要‘去获取’其他私人回购作为我们构建的一部分,目前他们失败了,因为docker无法连接到他们,只有目标私人回购。 主回购很好,因为部署密钥是通过Dockerhub安装的,但是任何后续的私有回购导入都失败了。

  • 我在我的DC/OS上运行詹金斯服务器,并且在同一个DC中也有一个私人注册表。 私有注册表没有任何ssl证书,为了从我的mac推送图像,我使用了以下命令 ocker-机器ssh默认"echo$'EXTRA_ARGS=\"--insecure-注册表 \"' | sudo ted-a /var/lib/boot2docker/profile 所以它工作得很好。 在Jenkins身上我试图设置DOCKE

  • 我试图覆盖默认的Hibernate验证器消息,但没有成功。我已经为几个文本使用了一个资源包,它工作得很好。问题在于验证器的消息。 详细内容: 我创建了以下文件:ValidationMessages\u de.properties并将其放置在\src\main\resources\translations\ValidationMessages\u de.properties下。该文件具有以下资源:o

  • 重定向::客户(登录)似乎只适用于GET请求。也就是说,它将把经过身份验证的用户重定向到原始的预期URL(GET)。 在存在POST请求的情况下,在用户成功登录后,是否有一种方式让auth筛选器继续向URL发布? 一个简单的例子:我想展示一个可供任何人查看的表单。点击submit按钮后,auth过滤器将启动,并将来宾带到登录页面。成功验证后,我希望提交请求(即POST请求)继续。