我有一个相当简单的架构。
前端从互联网上听;它将消息放在消息代理上;消息由后端使用。
我有一个用于前端和消息代理的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的印象,我该如何解决?