在已部署的docker swarm容器中运行mongo脚本

时间:2018-03-05 21:59:47

标签: mongodb docker docker-swarm

我使用docker swarm

部署了一个数据库
docker stack deploy -c docker-compose.yml app

搬运工-compose.yml

version: '3.1'
services:
  database:
    image: mongo:latest

我想在部署的script.js容器中从我的主机运行JavaScript文件database

docker exec \
    app_database.1.$(docker service ps -f 'name=app_database.1' app_database -q) \
    mongo script.js

但是,容器中不存在文件script.js(仅在我的主机上)。如何在不重新启动database服务的情况下运行它?

1 个答案:

答案 0 :(得分:3)

可以在stdin上将脚本发送到mongo客户端。

在本地创建脚本:

print('The mongodb version is: '+db.version())

然后运行

$ cat script.js | docker exec $container mongo --quiet
The mongodb version is: 3.6.3