在Docker-compose中开始多个服务
我有一个相当简单的架构。
一个前端从互联网上收听; 它将消息放在消息中介上; 该消息被后端消耗。
我有一个docker-compose文件的前端和消息代理,一个消息代理和后端,这两个工作得很好。 不过,我需要一个完整的docker服务器,将所有这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.
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"]
我有这样的印象,我正在运行在错误的目录内,我该如何解决?
你的印象是正确的。 :p在您的Dockerfile中设置WORKDIR 。