【发布时间】:2016-10-29 14:31:01
【问题描述】:
我有一个相当简单的架构。
来自互联网的前端监听;它将消息放在消息代理上;消息由后端消费。
我有一个用于前端和消息代理的 docker-compose 文件,一个用于消息代理和后端的文件,两者都运行良好。但是,我需要一个完整的 docker-compose 以及所有 3 个服务。
主要问题是前端和后端都需要开始使用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,我该如何解决?
【问题讨论】:
标签: makefile docker docker-compose