从 Bitbucket 部署到 Digital Ocean 导致 bitbucket 管道错误或 Digital Ocean 密码提示
Deployment to Digital Ocean from Bitbucket results in error on bitbucket pipeline or password prompt on Digital Ocean
我目前有一个带有到 Digital Ocean 管道的 bitbucket 存储库。但是,Digital Ocean 并没有成功从 repo 中提取。
到目前为止我有:
- 指向 Digital Ocean 液滴的 bitbucket 管道
- 已添加到 Digital Ocean droplet 的 bitbucket SSH public 密钥
- Digital Ocean 上的一个
deploy.sh
文件,它启动部署过程并被 bitbucket 上的管道引用
- Digital Ocean 上的一个
pull.sh
文件,它从 bitbucket 中检索最新版本并启动应用程序
我发现 bitbucket 端的管道出现故障。而且,如果我尝试手动 运行 pull.sh
,系统会提示我输入 bitbucket 存储库的密码。
我是否错误地设置了 SSH?
请注意,我没有发现管道有任何语法错误。
在 Bitbucket 上
比特桶管道
变量 <user>
和 <host>
已正确配置。
image: atlassian/default-image:latest
pipelines:
default:
- step:
deployment: staging
script:
- cat ./deploy.sh | ssh <user>@<host>
- echo "Deploy step finished"
Bitbucket SSH 密钥
- 私钥已配置
- Public 密钥已配置
- 已添加已知主机和主机地址(Digital Ocean Ubuntu droplet IPv4 地址)并具有指纹
关于数字海洋
授权密钥
- Public Digital Ocean 提供的密钥已添加到/root/。ssh/authorized_keys
Deploy.sh
位于/
echo "Deploy Script Started"
cd
sh pull.sh
echo "Deploy script finished execution"
Pull.sh
位于'/'
cd eg-api
git pull origin master
echo 'Repo: Local Copy Updated'
cd refgator-api
python3 refgator-api.py
我从 this answer 中找出了问题。
我最初使用 https 克隆了存储库,这意味着我总是会被要求输入密码。
更改 git 配置文件以使用 SSH url 允许我的脚本执行 git 拉取而无需密码。类似于下面的内容。
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@bitbucket.org:TheMightyLlama/therepo.git
我目前有一个带有到 Digital Ocean 管道的 bitbucket 存储库。但是,Digital Ocean 并没有成功从 repo 中提取。
到目前为止我有:
- 指向 Digital Ocean 液滴的 bitbucket 管道
- 已添加到 Digital Ocean droplet 的 bitbucket SSH public 密钥
- Digital Ocean 上的一个
deploy.sh
文件,它启动部署过程并被 bitbucket 上的管道引用 - Digital Ocean 上的一个
pull.sh
文件,它从 bitbucket 中检索最新版本并启动应用程序
我发现 bitbucket 端的管道出现故障。而且,如果我尝试手动 运行 pull.sh
,系统会提示我输入 bitbucket 存储库的密码。
我是否错误地设置了 SSH?
请注意,我没有发现管道有任何语法错误。
在 Bitbucket 上
比特桶管道
变量 <user>
和 <host>
已正确配置。
image: atlassian/default-image:latest
pipelines:
default:
- step:
deployment: staging
script:
- cat ./deploy.sh | ssh <user>@<host>
- echo "Deploy step finished"
Bitbucket SSH 密钥
- 私钥已配置
- Public 密钥已配置
- 已添加已知主机和主机地址(Digital Ocean Ubuntu droplet IPv4 地址)并具有指纹
关于数字海洋
授权密钥
- Public Digital Ocean 提供的密钥已添加到/root/。ssh/authorized_keys
Deploy.sh
位于/
echo "Deploy Script Started"
cd
sh pull.sh
echo "Deploy script finished execution"
Pull.sh
位于'/'
cd eg-api
git pull origin master
echo 'Repo: Local Copy Updated'
cd refgator-api
python3 refgator-api.py
我从 this answer 中找出了问题。
我最初使用 https 克隆了存储库,这意味着我总是会被要求输入密码。
更改 git 配置文件以使用 SSH url 允许我的脚本执行 git 拉取而无需密码。类似于下面的内容。
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@bitbucket.org:TheMightyLlama/therepo.git