-
-
Save iflamed/2d5aced9148714dcebe0c4918bcc917f to your computer and use it in GitHub Desktop.
--- | |
kind: pipeline | |
type: docker | |
name: default | |
clone: | |
disable: true | |
steps: | |
- name: clone | |
image: alpine/git | |
pull: if-not-exists | |
environment: | |
SSH_KEY: | |
from_secret: SSH_KEY | |
SSH_HOST: | |
from_secret: SSH_HOST | |
SSH_PORT: | |
from_secret: SSH_PORT | |
commands: | |
- mkdir $HOME/.ssh && echo "$SSH_KEY" > $HOME/.ssh/id_rsa && chmod 600 $HOME/.ssh/id_rsa | |
- | | |
[[ -n "$${SSH_PORT}" ]] && [[ -n "$${SSH_HOST}" ]] && ssh-keyscan -p $${SSH_PORT} $${SSH_HOST} >> $HOME/.ssh/known_hosts | |
- | | |
[[ -z "$${SSH_PORT}" ]] && [[ -n "$${SSH_HOST}" ]] && ssh-keyscan $${SSH_HOST} >> $HOME/.ssh/known_hosts | |
- git clone ${DRONE_GIT_SSH_URL} . | |
- git checkout ${DRONE_COMMIT_BRANCH} | |
- name: greeting | |
image: alpine | |
pull: if-not-exists | |
commands: | |
- echo "hello, world" | |
- ls -ahl | |
- pwd |
你好,请问一下。我这样配置的话有个报错。fatal: destination path '.' already exists and is not an empty directory. 克隆的目标目录非空。
我能想到的解决办法是 git init && git remote add origin xxx && git pull。你有更好的解决办法吗?
你好,请问一下。我这样配置的话有个报错。fatal: destination path '.' already exists and is not an empty directory. 克隆的目标目录非空。 我能想到的解决办法是 git init && git remote add origin xxx && git pull。你有更好的解决办法吗?
@wangyuhuiever 没有遇到这个问题,不知道是不是git 版本的问题。能解决就行,你这样写感觉也还可以。
git init && git remote add origin ${DRONE_GIT_SSH_URL} && git pull origin ${DRONE_COMMIT_BRANCH}
最终我这样解决了
需要在Drone 中对应的 Repository 中配置三个 Secret 变量,如下图:
其中
SSH_KEY
为 Git Repository 中用来 Clone 的 ssh private key,SSH_HOST
为 Git Server 的 IP 地址或者域名,SSH_PORT
为 Git Server 的SSH
端口,默认为22
可以不用填写。
关于这个我有个更好的解决方法,将通用的环境变量写在drone-runner的docker-compose.yml中。这样就不用每个Repository配置一遍了。
需要在Drone 中对应的 Repository 中配置三个 Secret 变量,如下图:
其中SSH_KEY
为 Git Repository 中用来 Clone 的 ssh private key,SSH_HOST
为 Git Server 的 IP 地址或者域名,SSH_PORT
为 Git Server 的SSH
端口,默认为22
可以不用填写。关于这个我有个更好的解决方法,将通用的环境变量写在drone-runner的docker-compose.yml中。这样就不用每个Repository配置一遍了。
docker-compose.yml 是要加入git repo 的吧,不安全。
如果要放到git上的确实会不安全,我这里没放,都是直接在本地编辑的。
需要在Drone 中对应的 Repository 中配置三个 Secret 变量,如下图:

其中
SSH_KEY
为 Git Repository 中用来 Clone 的 ssh private key,SSH_HOST
为 Git Server 的 IP 地址或者域名,SSH_PORT
为 Git Server 的SSH
端口,默认为22
可以不用填写。