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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

更好的实践:
将生成好的 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...

4年前 评论
讨论数量: 5

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

4年前 评论

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

4年前 评论

更好的实践:
将生成好的 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...

4年前 评论

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

4年前 评论

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

4年前 评论

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