文件结构示例:
projects
|-- project 1
| |-- app
| | +-- <all app files>
| |-- Dockerfile
| +-- fig.yml
+-- project 2
|-- app
| +-- <all app files>
|-- Dockerfile
+-- fig.yml
Dockerfile (不完全是我所使用的,只是一个例子)
FROM node:latest
RUN mkdir /src
RUN npm install nodemon -g
WORKDIR /src
ADD app/package.json /src/package.json
RUN npm install
ADD app/nodemon.json /src/nodemon.json
EXPOSE 3000
CMD npm start
fig.yml
web:
build: .
volumes:
- "app:/src/app"
ports:
- "3030:3000" # ports different for both apps
links:
- db
db:
image: library/mysql
<other db config>
问题:有没有办法让这两个项目连接到同一个mysql容器?现在它将为每个项目创建一个mysql容器。
答案 0 :(得分:4)
您可以在自己的YAML文件中使用external_links
作为docker-compose 1.1.0(docs)。您可以让一个项目使用外部链接到另一个项目的数据库,或者让两个项目链接到外部容器。
项目2的示例YAML:
web:
build: .
volumes:
- "app:/src/app"
ports:
- "3030:3000" # ports different for both apps
external_links:
- project1_db_1:db