【发布时间】:2017-01-05 05:42:08
【问题描述】:
我问的原因是因为我们正在使用 AWS 代码构建并且我需要进行数据库迁移。如果数据库迁移中断,我想取消代码构建并回滚刚刚进行的迁移。我已经完成了这部分工作,我现在需要做的就是中途取消 dockerbuild。我该怎么做?
这是我的带有 knex 迁移命令的 .sh 文件:
#!/bin/bash
echo "running"
function mytest {
"$@"
local status=$?
if [ $status -ne 0 ]; then
knex migrate:rollback
echo "Rolling back knex migrate $1" >&2
exit
fi
return $status
}
mytest knex migrate:latest
运行 exit 不会取消/中断 docker 构建。
我的 Dockerfile(以防万一):
FROM node:6.2.0
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
RUN chmod +x /usr/src/app/migrate.sh
RUN /usr/src/app/migrate.sh
EXPOSE 8080
CMD npm run build && npm start
【问题讨论】: