【发布时间】:2019-04-24 02:22:29
【问题描述】:
我有一个 sharelatex 容器正在运行。这个 docker compose 文件包含一个 mongo 和 redis 容器。
这里是 sharelatex docker compose:
version: '2'
services:
sharelatex:
restart: always
image: rigon/sharelatex-full
#image: sharelatex/sharelatex
container_name: sharelatex
networks:
- test-network
depends_on:
- mongo
- redis
privileged: true
links:
- mongo
- redis
volumes:
- ./sharelatex_data:/var/lib/sharelatex
- /var/run/docker.sock:/var/run/docker.sock
environment:
SHARELATEX_MONGO_URL: mongodb://mongo/sharelatex
SHARELATEX_REDIS_HOST: redis
SHARELATEX_APP_NAME: ShareLaTeX
SHARELATEX_SITE_URL: https://latex.tkwant.de
mongo:
restart: always
image: mongo
container_name: mongo
expose:
- 27017
volumes:
- ./mongo_data:/data/db
networks:
- test-network
redis:
restart: always
image: redis
container_name: redis
networks:
- test-network
expose:
- 6379
volumes:
- ./redis_data:/data
networks:
test-network:
external: true
我也想创建一个需要 mongodb 的节点应用程序。 我怎样才能连接这两个容器? 我阅读了网络并尝试了 docker network 但没有成功。
这是我的 node docker compose:
version: '3.5'
services:
app:
container_name: app
restart: always
build: .
ports:
- '3001:3000'
networks:
- test-network
networks:
test-network:
driver: external
这里是我的 index.js:
// Connect to MongoDB
mongoose
.connect(
'mongodb://mongo:27017/test2',
{ useNewUrlParser: true }
)
.then(() => console.log('MongoDB Connected'))
.catch(err => console.log("errorErrorError"));
我愿意接受所有答案... 在自己的容器中运行 mongo 或创建 docker 网络。但我不知道什么是最好的或最简单的。
更新 1:
第一个问题:Sharelatex 不再工作 --> sharelatex 现在在另一个网络中。我的 nginx 反向代理不再找到 sharelatex 容器。第二个问题是:当我想启动节点 docker 时出现此错误(不知道为什么,但它想创建一个新网络):使用驱动程序“外部”创建网络“dockernodemongo_test-network”错误:找不到插件“外部”
【问题讨论】:
-
你能展示你使用 docker 网络的尝试吗?另外,你说它不起作用是什么意思?
-
我更新了它。在第一个答案下,您可以阅读不起作用的内容
标签: javascript node.js mongodb docker docker-compose