从容器到主机执行git命令



我想从我的容器运行git命令到主机。我正在更新的git文件夹在主机上,我无法在我的容器中克隆它。我也希望把文件放在我的主机上,这样用户上传文件就不会有困难。

  • 主机
    • DockerContainer 1

我尝试过的事情:

ssh -i /var/sshkeys Username@vmMaching.Domain.corp 'cd /var/www/scheduledqueries && git pull' 

我在输入我的代码时得到一个错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/var/sshkeys' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/var/sshkeys": bad permissions
Username@vmMaching.Domain.corp's password:
Permission denied, please try again.
Username@vmMaching.Domain.corp's password:
error: cannot open .git/FETCH_HEAD: Permission denied
root@200eea99abd9:/#

我将我的证书和密钥文件复制到一个位置,并将其列在我的docker-compose

的卷部分。

第一部分是纯ssh:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/var/sshkeys' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/var/sshkeys": bad permissions

Git与此消息无关。您使用参数-i、路径名、用户和主机以及在服务器上运行一次的命令运行ssh。Ssh本身决定忽略您的-i,以迫使您修复文件的权限。

然后输入密码,ssh在服务器上运行您要求它执行的命令。该命令-cd /var/www/scheduledqueries && git pull-成功地执行了cd /var/www/scheduledqueries。然后它运行git pull,这意味着运行git fetch,然后一旦工作,对刚刚获取的做一些事情(something部分取决于你如何配置Git)。

fetch操作失败,因为在服务器上,您登录的用户没有权限读取和/或写入Git库中的.git/FETCH_HEAD

要解决第一部分中的抱怨,请确保您的客户端上的文件(您将运行ssh)具有正确的权限,以便ssh愿意使用它(并且它具有正确的内容,以便当ssh确实使用它时,它可以工作),这可能已经是情况;我们只知道ssh没有使用它)。

要修复第二部分中的抱怨,请确保无论您登录到服务器(Username@vmMaching.Domain.corp)上的哪个用户都具有读写.git目录中的文件的权限。一般来说,该用户应该拥有该目录的,尽管在某些情况下,您可以设置用户是可以使用该目录的组的成员。设置对Git存储库的组范围访问有点棘手。

(注意,如果你打算使用Docker来运行某个特定的服务,你可能希望完全在Docker之外设置服务。这样,您就不需要在服务器的中执行任何Git操作,因为这些操作早在docker命令启动之前就已经完成了。

相关内容

  • 没有找到相关文章

最新更新