gradle 集成 dockerFile

gradle 集成 dockerFile

gradle 是一個新興的jvm編譯工具蕾额,docker也是最流行的容器部署方案赖钞,docker傳統(tǒng)通過Dockerfile進行image的打包丰涉,這時候我們想要比較方便的結合docker和gradle

就是在gradle編譯的時候可能進行docker的打包硫椰。就可以使用一個gradle的plugin

build.gradle

buildscript{
        repositories{
                mavenCentral()
        }
        dependencies{
                classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE")
        }
}


//這里就是必須依賴的docker的gradle plugin闸度,相比而言洪规,這個plugin雖然star不是很多,但是剩在簡單粗暴醇份,可以讓我繼續(xù)
//dockerfile進行撰寫Docker的命令
plugins {
        id "org.sglahn.gradle-dockerfile-plugin" version "0.4"
}

apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'org.springframework.boot'

version='0.0.2'

jar{
        baseName = 'gs-sb-docker'
                version = '0.0.1'
}

repositories{
        mavenCentral()
}

sourceSets{
        main{
                java{
                        srcDirs = []
                }
                groovy{
                        srcDirs = ['src/main/groovy','src/main/java']
                }
        test{
                java{
                        srcDirs = []
                }
                groovy{
                        srcDirs = ['src/test/groovy','src/test/java']
                }
        }
        }
}

sourceCompatibility = 1.8
targetCompatibility = 1.8


dependencies{
        compile("org.springframework.boot:spring-boot-starter-web")
        compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.4'
        testCompile("org.springframework.boot:spring-boot-starter-test")
}

//configuration
docker {
        // Image version. Optional, default = project.version
        //imageVersion = version
        // Image name. Optional, default = project.name
         imageName = 'sbdocker'
        // Docker repository. Optional, default == no repository
        // dockerRepository = 'sglahn'
        // Path or URL referring to the build context. Optional, default = ${project.projectDir.getAbsolutePath()}
        // buildContext = 'build-context'
        // Path to the Dockerfile to use (relative to ${project.projectDir}). Optional, default = ${buildContext}/Dockerfile
        dockerFile = 'src/main/docker/Dockerfile'
        // Add a list of tags for an image. Optional, default = 'latest'
        //tags = [version, 'latest', 'Hello']
        // Set metadata for an image. Optional, default = no label applied
        //labels = ['branch=master', 'mylabel=test']
        // name and value of a buildarg. Optional, default = no build arguments
        //buildArgs = ['http_proxy="http://some.proxy.url"']
        // Always remove intermediate containers, even after unsuccessful builds. Optional, default = false
        removeIntermediateContainers = true
        // Isolation specifies the type of isolation technology used by containers. Optional, default = default
        //isolation = 'default'
        // Do not use cache when building the image. Optional, default = false
        //noCache = true
        // Always attempt to pull a newer version of the image. Optional, default false
        //pull = true
        // Suppress the build output and print image ID on success. Optional, default = true
        quiet = false
        // Remove image in local repository after push to a remote repository, useful for builds on CI agents. Optional, default = false
        //removeImagesAfterPush = true
}

cat src/main/docker/Dockerfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD build/libs/gs-sb-docker-0.0.1.jar /app.jar
ENV JAVA_OPTS=""
CMD ["java","-jar","/app.jar"]

以上就是最簡單的docker和gradle的結合了稼锅。
如果想要徹底不寫Dockerfile,改用其他的gradle plugin也是可以的僚纷,大家可以去github上搜索下矩距,只是這么一來,就會比較復雜點怖竭。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末锥债,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哮肚,老刑警劉巖登夫,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件靖避,死亡現(xiàn)場離奇詭異狈茉,居然都是意外死亡,警方通過查閱死者的電腦和手機回还,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門拼窥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戏蔑,“玉大人,你說我怎么就攤上這事鲁纠∽芸茫” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵改含,是天一觀的道長情龄。 經常有香客問我,道長捍壤,這世上最難降的妖魔是什么骤视? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮鹃觉,結果婚禮上专酗,老公的妹妹穿的比我還像新娘。我一直安慰自己盗扇,他們只是感情好祷肯,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疗隶,像睡著了一般佑笋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斑鼻,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天蒋纬,我揣著相機與錄音,去河邊找鬼坚弱。 笑死蜀备,一個胖子當著我的面吹牛,可吹牛的內容都是我干的荒叶。 我是一名探鬼主播琼掠,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼停撞!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤戈毒,失蹤者是張志新(化名)和其女友劉穎艰猬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埋市,經...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡冠桃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了道宅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片食听。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖污茵,靈堂內的尸體忽然破棺而出樱报,到底是詐尸還是另有隱情,我是刑警寧澤泞当,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布迹蛤,位于F島的核電站,受9級特大地震影響襟士,放射性物質發(fā)生泄漏盗飒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一陋桂、第九天 我趴在偏房一處隱蔽的房頂上張望逆趣。 院中可真熱鬧,春花似錦嗜历、人聲如沸宣渗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽落包。三九已至,卻和暖如春摊唇,著一層夾襖步出監(jiān)牢的瞬間咐蝇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工巷查, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留有序,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓岛请,卻偏偏與公主長得像旭寿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子崇败,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內容