bash - 如何等待命令在容器内完成执行
问题描述
使用以下 dockerfile:
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 文件用来启动一个容器:
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
没有完成。
我如何实现这一目标?
解决方案
最简单的解决方案可能会在npm run build
之前运行npm run watch
推荐阅读
- regex - 正则表达式匹配以下序列的多个字符串
- c++ - C++中动态数组的创建和使用
- android - RecyclerView 仅在方向更改后从 ViewModel 填充数据
- java - 限制在 Java 中可以调用方法的次数
- python - Python - Kmeans - 将质心添加为新列
- javascript - 如何从 wordpress 自定义字段动态生成 vue 组件
- docker - LimitRange 的 default、defaultRequest、max 和 min 限制之间的关系
- c++ - 是否存在使用信号量而不通过 shared_ptr 延长寿命的危险用例?
- sql - 如何使 power bi 与多对多一起工作?
- javascript - 使用 JavaScript Papa Parse 将 CSV 文件加载到静态 Python Bokeh Web 应用程序中