链接到同一数据库的多个项目(和fig.yml)

时间:2015-02-13 02:19:53

标签: docker dockerfile fig

文件结构示例:

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容器。

1 个答案:

答案 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