Maven在Mac上与Docker守护进程进行通信的正确设置是什么?

我一直试图在我的Mac上构build我的Maven Spring Boot项目的Docker镜像。

这是我的构build部分:

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> <execution> <id>tag-image</id> <phase>package</phase> <goals> <goal>tag</goal> </goals> <configuration> <image>my-image</image> <newName>registry.example.com/my-image</newName> </configuration> </execution> </executions> </plugin> </plugins> </build> 

当我运行这个命令: mvn -X package docker:build

我得到这个错误:

  [ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (build-image) on project Spring-Boot-ReceiverAPI: Exception caught: Request error: POST unix://localhost:80/build?t=uptake/Spring-Boot-ReceiverAPI: 500: HTTP 500 Internal Server Error -> [Help 1] 

这是我的DOCKER_HOST:

 echo $DOCKER_HOST unix:///private/var/run/docker.sock 

所有其他docker命令运行良好:

 docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 384ed96af950 4 hours ago 640.9 MB java 8 96cddf5ae9f1 10 days ago 640.9 MB containersol/minimesos-cli 0.10.2 0f8fd0fee007 8 weeks ago 133.7 MB 

Docker守护进程显然正在运行,并且DOCKER_HOST的值适用于正常的Docker命令。

我能做些什么,使dockerbuild设在Mac上工作?

我已经解决了这个问题,通过启用我的普通用户帐户来运行docker命令而不使用sudo。 这是POM的构build部分:

 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> <execution> <id>tag-image</id> <phase>package</phase> <goals> <goal>tag</goal> </goals> <configuration> <image>api</image> <newName>registry.example.com/api</newName> </configuration> </execution> </executions> </plugin> </plugins> <resources> <resource> <directory>${basedir}/src/main/docker</directory> <filtering>true</filtering> <includes> <include>Dockerfile</include> </includes> </resource> </resources> </build> 

这里是命令,它可以在普通用户帐户下正常运行:

 mvn -X package docker:build