我使用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
服务的情况下运行它?
答案 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