我运行了一个节点服务器(在Docker容器中)来监听github webhook,这样我就可以在我的master更新时重新部署。我的主目录包含:
production/
app/webhooks/
docker-compose-webhooks.yml
deploy.sh
~/docker-compose-webhooks.yml
version: '3'
services:
webhooks:
image: node:10.11.0-alpine
container_name: abis-webhooks
working_dir: /webhooks
environment:
NODE_ENV: production
PORT: 5050
GITHUB_SECRET: ${GITHUB_SECRET}
expose:
- '5050'
volumes:
- ./app/webhooks:/webhooks
command: /bin/sh -c 'npm install --production; npm start'
~/deploy.sh
#!/bin/bash
cd ~/production && git pull origin master
...
...
调用deploy.sh的最简单方法是什么?它显然位于node所在的容器之外。
我从另一篇文章中引用了这个,并将其添加到node中:
exec(`docker run --rm -v /usr/bin:/usr/bin --privileged -v $(pwd)/depoly.sh:~/deploy.sh ubuntu bash ~/deploy.sh`)
1条答案
按热度按时间ddarikpa1#
您可以按照https://stackoverflow.com/a/63719458/7475450中的说明使用命名管道
或者,您可以通过
ssh
从容器在主机上执行脚本。范例:如果需要,您可以设置基于公钥的身份验证,以在主机上进行无密码ssh访问。参见https://linuxize.com/post/how-to-setup-passwordless-ssh-login/