部署 Vue.js 使用 Gitlab CI 构建
Deploy Vue.js build with Gitlab CI
这是我的 gitlab 管道。 Vue.js 工件是建立在运行器上的。如何部署到我的测试服务器?仅供参考:Fab pull
在回购协议上做了 git pull
。
deploy_staging:
image: python:3.6
stage: deploy
only:
- master
before_script:
- curl -sL https://deb.nodesource.com/setup_13.x | bash -
- apt-get update -y
- apt-get install -y curl git gnupg nodejs
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- |
cat >~/.ssh/config <<EOF
Host testserver
ForwardAgent yes
HostName dev.testserver.ts
User testuser
EOF
- cat ~/.ssh/config
script:
- pip install -r requirements.txt
- npm install
- npm run production
- fab pull
因为你想从 GitLab runner 复制文件到你的服务器,这可以使用 scp
命令。
例如:
⋮
script:
- pip install -r requirements.txt
- npm install
- npm run production
- scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no /PATH/TO/BUILD_ARTIFACTS testserver:~/PATH/TO/DESTINATION
- fab pull
UserKnownHostsFile
和 StrictHostKeyChecking
是防止错误 Host key verification failed
的 SSH 选项。因此,在您的情况下,它们应该与 scp
命令一起使用。
此外,工件文件的目标路径必须从 testuser
的主目录(波浪字符 ~
)开始。否则你可能会遇到 Permission denied
错误。
这是我的 gitlab 管道。 Vue.js 工件是建立在运行器上的。如何部署到我的测试服务器?仅供参考:Fab pull
在回购协议上做了 git pull
。
deploy_staging:
image: python:3.6
stage: deploy
only:
- master
before_script:
- curl -sL https://deb.nodesource.com/setup_13.x | bash -
- apt-get update -y
- apt-get install -y curl git gnupg nodejs
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- |
cat >~/.ssh/config <<EOF
Host testserver
ForwardAgent yes
HostName dev.testserver.ts
User testuser
EOF
- cat ~/.ssh/config
script:
- pip install -r requirements.txt
- npm install
- npm run production
- fab pull
因为你想从 GitLab runner 复制文件到你的服务器,这可以使用 scp
命令。
例如:
⋮
script:
- pip install -r requirements.txt
- npm install
- npm run production
- scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no /PATH/TO/BUILD_ARTIFACTS testserver:~/PATH/TO/DESTINATION
- fab pull
UserKnownHostsFile
和 StrictHostKeyChecking
是防止错误 Host key verification failed
的 SSH 选项。因此,在您的情况下,它们应该与 scp
命令一起使用。
此外,工件文件的目标路径必须从 testuser
的主目录(波浪字符 ~
)开始。否则你可能会遇到 Permission denied
错误。