docker 发布应用时添加 git revision
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                docker 发布应用时添加 git revision
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                - 概要
- 實(shí)施步驟 - 獲取 git revision
- 前端 git revision 注入
- 后端 git revision 注入
 
概要
docker 發(fā)布應(yīng)用時(shí), 將 git revision 注入到應(yīng)用中, 在問題出現(xiàn)時(shí), 可以迅速定位代碼版本.
實(shí)施步驟
- 前端的 revision 通過 yarn build 傳入
- 后端的 revision 通過 環(huán)境變量傳入
獲取 git revision
GIT_TAG=`git describe --tags` IFS='-' read -r -a tags <<< $GIT_TAG if [ "${#tags[@]}" = "1" ]; thenGIT_COMMIT=$tags elseGIT_COMMIT=`git rev-parse HEAD | cut -c 1-8` fi上面的代碼是獲取最新的 git revision 的前 8 位, 如果最新的 git revision 有 tag, 則使用 tag 獲取的 git revision 放在 GIT_COMMIT 中.
前端 git revision 注入
首先是 docker build 命令中傳入 git revision
docker build -t xxx.latest --build-arg VERSION=${GIT_COMMIT} .然后在 docker file 中獲取 VERSION, 并將其傳給 yarn build 命令
ARG VERSION=no-version # 默認(rèn)值 no-version RUN yarn RUN yarn build --VERSION=${VERSION}最后是前端工程中獲取此變量, 并在頁面的 footer 處顯示 git revision
process.argv.filter(str => /^--/.test(str)).map(str => str.replace('--', '')).forEach(str => {let sub = str.match(/([\s\S]*)\=([\s\S]*)/)sub ? (TYPE[sub[1]] = sub[2]) : (TYPE[str] = true)})const mergeWebpackConfig = () => (config, env) => {// ...省略...config.plugins = (config.plugins || []).concat([new webpack.DefinePlugin({'process.env.VERSION': JSON.stringify(TYPE['VERSION'])})])// ...省略... } <Footer><divstyle={{ textAlign: 'center' }}className="gx-layout-footer-content">Copyright ? 2019 {process.env.VERSION}</div> </Footer>后端 git revision 注入
本文的例子是基于 golang 的 API 后端, 獲取 git revision 的方法和上面類似.
獲取 git revision 之后, 在 docker file 中獲取 VERSION, 并設(shè)置環(huán)境變量 VERSION
ARG VERSION=no-version ENV VERSION=${VERSION}API 服務(wù)添加 -v 參數(shù), 用來顯示服務(wù)的版本
ver := flag.Bool("v", false, "verify version") flag.Parse()if *ver {fmt.Println(os.Getenv("VERSION"))return }轉(zhuǎn)載于:https://www.cnblogs.com/wang_yb/p/10934407.html
總結(jié)
以上是生活随笔為你收集整理的docker 发布应用时添加 git revision的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: exchange2013卸载
- 下一篇: HP-UX 11.31根盘镜像(RX26
