Laradock 如何使用 SSH KEY 去上传代码到 GitHub 呢?

操作系统:Win10
之前本地开发环境用的 Homestead 但是它太笨重了
后选择 Laradock 来作为本地开发环境
搭建成功 也能成功访问到网页
直到想把代码上传到 Github 时懵逼了 (使用免密 SSH KEY)
在容器里创建密钥是不行的 (容器销毁 密钥也没了)
那要怎么做呢?感谢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

更好的实践:
将生成好的 id_rsa id_rsa.pub 放入 laradock\workspace 目录中
编辑 laradock\workspace 目录中的 Dockerfile 文件
搜索 ssh: 大概会定位到 300 多行
然后在它的上方
加入如下代码

###########################################################################
# SSH KEY For Github
###########################################################################
COPY id_rsa /home/laradock/.ssh/id_rsa
COPY id_rsa.pub /home/laradock/.ssh/id_rsa.pub
RUN chmod 400 /home/laradock/.ssh/id_rsa
RUN chmod 644 /home/laradock/.ssh/id_rsa.pub
RUN chown -R laradock:laradock /home/laradock/.ssh

该代码参考了下方 SSH 的代码
使用 COPY 命令将我们的密钥上传到容器的相应位置
使用 RUN 命令对密钥文件改权/用户组

保存后 我们执行该命令 docker-compose build workspace 重新生成 workspace 镜像
PS: 如果你此时已经在运行以 workspace 镜像生成的容器 建议先执行 docker-compose down
将正在运行的容器停止并且销毁

workspace 重新生成后 可用 docker images 命令查看你当前所有的镜像
如果 workspace 镜像的创建时间是较新的 表明成功

接着执行 docker-compose up -d nginx mysql 创建容器
执行 docker exec -it --user=laradock laradock_workspace_1 bash 进入容器 (以 laradock 用户进入)
到这里 密钥文件已经成功放入了 laradock 用户的 .ssh 目录中
我们就可以将 id_rsa.pub 文件的内容 加入到 Github 之类的平台上 就可以免密登录了

参考资料:
https://gitee.com/help/articles/4181#artic...
https://laradock.io/getting-started/
https://www.runoob.com/docker/docker-docke...

5年前 评论
讨论数量: 5

还发现在 Laradock 的 workspace 中使用 Git 设置了用户名和邮箱 重启容器后 也木有了 0.0

5年前 评论

暂时的解决办法是不对容器进行销毁
之前是使用 docker-compose down 对容器进行了停止并且销毁的操作
应该是这样导致了 我在里面进行的数据操作 (例如对 git 设置 或 生成 ssh key 等) 随容器一起销毁了
现在是使用 docker-compose stop 对容器进行停止
下次开电脑的时候 使用 docker-compose restart 对停止的容器进行重启
这样数据还都在
刚入 docker 一天的小白 不知道我这么做是否是最佳实践 欢迎指导 谢谢

5年前 评论

更好的实践:
将生成好的 id_rsa id_rsa.pub 放入 laradock\workspace 目录中
编辑 laradock\workspace 目录中的 Dockerfile 文件
搜索 ssh: 大概会定位到 300 多行
然后在它的上方
加入如下代码

###########################################################################
# SSH KEY For Github
###########################################################################
COPY id_rsa /home/laradock/.ssh/id_rsa
COPY id_rsa.pub /home/laradock/.ssh/id_rsa.pub
RUN chmod 400 /home/laradock/.ssh/id_rsa
RUN chmod 644 /home/laradock/.ssh/id_rsa.pub
RUN chown -R laradock:laradock /home/laradock/.ssh

该代码参考了下方 SSH 的代码
使用 COPY 命令将我们的密钥上传到容器的相应位置
使用 RUN 命令对密钥文件改权/用户组

保存后 我们执行该命令 docker-compose build workspace 重新生成 workspace 镜像
PS: 如果你此时已经在运行以 workspace 镜像生成的容器 建议先执行 docker-compose down
将正在运行的容器停止并且销毁

workspace 重新生成后 可用 docker images 命令查看你当前所有的镜像
如果 workspace 镜像的创建时间是较新的 表明成功

接着执行 docker-compose up -d nginx mysql 创建容器
执行 docker exec -it --user=laradock laradock_workspace_1 bash 进入容器 (以 laradock 用户进入)
到这里 密钥文件已经成功放入了 laradock 用户的 .ssh 目录中
我们就可以将 id_rsa.pub 文件的内容 加入到 Github 之类的平台上 就可以免密登录了

参考资料:
https://gitee.com/help/articles/4181#artic...
https://laradock.io/getting-started/
https://www.runoob.com/docker/docker-docke...

5年前 评论

代码不是本地有一份的吗,传本地的到 gihub 啊

5年前 评论

@fengzi91 在容器内使用 git 和 ssh key 还能方便使用 Deployer 来部署项目

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!