首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何等待命令在容器内执行完毕

如何等待命令在容器内执行完毕
EN

Stack Overflow用户
提问于 2018-07-06 17:09:56
回答 2查看 6.3K关注 0票数 0

使用以下dockerfile:

代码语言:javascript
复制
FROM golang:1.9 AS build-go
RUN go get github.com/grafana/grafana; exit 0
WORKDIR $GOPATH/src/github.com/grafana/grafana
RUN go run build.go setup
RUN go run build.go build

FROM node:8 AS build-node
COPY --from=build-go $HOME/go/src/github.com/grafana/grafana .
RUN npm install -g yarn
RUN yarn install --pure-lockfile
CMD npm run watch
EXPOSE 3000

我创建和映像,然后通过bash文件启动容器:

代码语言:javascript
复制
docker run -d -P --name=grafanabuildfromsrc myimg
docker exec grafanabuildfromsrc ./bin/linux-amd64/grafana-server

./bin/linux-amd64/grafana-server要求npm run build一次完成所有文件的构建。当前脚本将在构建完成之前执行它。

我想要的是,在执行bash文件中的第二个命令之前,它应该先等待容器中的命令完成。这个是可能的吗?

一个可能很重要的注意事项:当grafana-server未完成时,"Failed to detect generated javascript files in public/build表示npm run watch

我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-08 14:00:02

在扩展@AussiDan的回答后,我将Dockerfile更改为:

代码语言:javascript
复制
FROM golang:1.9 AS build-go
RUN go get github.com/grafana/grafana; exit 0
WORKDIR $GOPATH/src/github.com/grafana/grafana
RUN go run build.go setup && go run build.go build

FROM node:8 AS build-node
COPY --from=build-go $HOME/go/src/github.com/grafana/grafana .
RUN npm install -g yarn && yarn install --pure-lockfile && npm run build
CMD ./bin/linux-amd64/grafana-server

EXPOSE 3000

这样,当我启动grafana服务器时,构建的javascript文件已经在图像中了。

票数 -1
EN

Stack Overflow用户

发布于 2018-07-06 17:20:58

最简单的解决方案可能是在npm run build之前运行npm run watch

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51215002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档