前端之家收集整理的这篇文章主要介绍了
仅使用SSH密钥和dockerfile进行部署,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我正确理解你的问题,除了scp,ssh和几个shell脚本之外你不需要任何东西.
假设您要将代码从serverA部署到serverB.
在serverB上,使用Dockerfile创建一个目录.另外,创建一个shell脚本,让我们称之为build_image.sh,它使用sudo运行你的docker build命令.
此外,在serverB上,从源代码构建代码(如有必要).
最后,调用代码构建脚本,docker构建脚本,最后运行新的docker镜像.我们调用这个脚本do_it_all.sh.
确保你chmod 755所有shell脚本.
现在,在serverA上,您有一个包含源代码的目录. scp将serverB的目录放入带有Dockerfile的目录中.
接下来,从serverA使用ssh在serverB上调用do_it_all.sh.这将构建您的代码,构建您的映像并部署容器,而无需额外的软件,包,git,DNS记录等.
如果您愿意,您甚至可以使用cron或其他方式自动执行此过程以进行夜间部署,或者在其他条件下进行部署.
示例脚本/命令:
在serverB上:
build_image.sh:
#!/bin/bash
sudo docker build -t my_image
build_code.sh(可选,根据您的代码调整):
#!/bin/bash
cd /path/to/my/code
./configure
make
do_it_all.sh:
#!/bin/bash
cd /path/to/my/dockerfile
sudo docker stop my_container #stop the old container
sudo docker rm my_container #remove the old container
sudo docker rmi my_image #remove the old image
./build_code.sh #comment out if not needed
./build_image.sh
sudo docker run -d --name my_container my_image
在serverA上:
scp -r /path/to/my/code serverB:/path/to/my/dockerfile
ssh serverB '/path/to/my/dockerfile/do_it_all.sh'
那应该是它.调整您的系统.
要部署到一个全新的系统,只需在serverA上编写一个脚本,该脚本使用ssh复制在serverB ssh serverB’mkdir / path / to / dockerfile’上创建必要的目录.接下来,使用scp将Dockerfile和构建脚本以及代码从serverA复制到serverB.然后使用ssh从serverA在serverB上运行do_it_all.sh.