使用 Intellij 在 Spring Boot 中使用 Gradle 构建 docker 映像
Posted
技术标签:
【中文标题】使用 Intellij 在 Spring Boot 中使用 Gradle 构建 docker 映像【英文标题】:Build docker image using Gradle in SpringBoot using Intellij 【发布时间】:2018-08-26 07:16:12 【问题描述】:我有以下 dockerfile。
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
ADD $JAR_FILE app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
这是 build.gradle。
buildscript
ext
springBootVersion = '2.0.0.RELEASE'
repositories
mavenCentral()
dependencies
classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
classpath('se.transmode.gradle:gradle-docker:1.2')
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'docker'
bootJar
baseName = 'gs-spring-boot-docker'
version = '0.1.0'
group = 'com.pai'
version = '0.0.1-SNAPSHOT'
task buildDocker(type: Docker, dependsOn: build)
push = true
applicationName = jar.baseName
dockerfile = file('src/main/docker/Dockerfile')
doFirst
copy
from jar
into stageDir
repositories
mavenCentral()
dependencies
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
compile 'mysql:mysql-connector-java'
compile group: 'org.apache.commons', name: 'commons-io', version: '1.3.2'
compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.springframework.security:spring-security-test')
build.gradle 进程同步成功。 当我运行以下命令时。
sudo ./gradlew build buildDocker
我收到以下错误消息。
Execution failed for task ':buildDocker'.
> Docker execution failed
Command line [docker push com.pai/pai201808:0.0.1-SNAPSHOT] returned:
Get https://com.pai/v2/: dial tcp: lookup com.pai on 127.0.1.1:53: no such host
我认为这可能是错误导入或配置的 dockerfile 无效的问题。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:Gradle 脚本尝试将 docker 镜像推送到不存在的存储库。你打算这样做吗?如果不是 - 那么只需设置push = false
。
如果要将图像推送到某个存储库,则必须对其进行设置。您必须检查将图像推送到所需存储库的插件特定设置。
更多信息: Creating new repository on Docker Hub, Setting up own registry
【讨论】:
以上是关于使用 Intellij 在 Spring Boot 中使用 Gradle 构建 docker 映像的主要内容,如果未能解决你的问题,请参考以下文章
在 IntelliJ 中使用 JPA 的 Spring Boot
使用 Intellij 在 Spring Boot 中使用 Gradle 构建 docker 映像
Spring Cloud Spring Boot mybatis分布式微服务云架构使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程
Spring Cloud Spring Boot mybatis分布式微服务云架构使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程