多个服务以make docker-compose开头

时间:2016-06-27 14:16:12

标签: makefile docker docker-compose

我有一个相当简单的架构。

前端从互联网上听;它将消息放在消息代理上;消息由后端使用。

我有一个用于前端和消息代理的docker-compose文件,一个用于消息代理和后端,两者都运行良好。但是我需要一个完整的docker-compose与所有这三个服务一起。

主要问题是前端和后端需要开始使用make。

作为前端的一个例子:

frontend:
  build: .
  command: make serve
  depends_on:
    - message_broker

message_broker:
  image: message/broker

后端基本相同。

现在我试着把两者结合在一起:

frontend:
  build: frontend
  command: make serve
  depends_on:
    - message_broker

backend:
  build: backend
  command: make serve
  depends_on:
    - message_broker
    - frontend

message_broker:
  image: message/broker

但是,当我尝试使用docker-compose up运行它时,我会获得make: *** No rule to make target 'serve'. Stop.服务,前端和后端。

当然每个Makefile中都有serve的规则。

单个dockerfile是这样的:

FROM golang:1.6.2

ENV PROJECT_PATH=/go/src/github.com/brocaar/lora-semtech-bridge
ENV PATH=$PATH:$PROJECT_PATH/build

# install tools
RUN go get github.com/golang/lint/golint
RUN go get github.com/kisielk/errcheck

# setup work directory
RUN mkdir -p $PROJECT_PATH
WORKDIR $PROJECT_PATH

# copy source code
COPY . $PROJECT_PATH

# build
RUN make build

CMD ["semtech-bridge"]

我觉得我在错误的目录中运行make的印象,我该如何解决?

1 个答案:

答案 0 :(得分:1)

您的印象是正确的。 :p在Dockerfile中设置WORKDIR