HTTP 500内部服务器错误:在容器化我的Java Web应用程序时

时间:2019-09-23 05:42:23

标签: java maven docker servlets

我正在容器化我的Java Web应用程序,正在使用spotify插件来进行此操作,并正在使用maven来构建我的项目。但是当我运行mvn clean package docker:build时会显示此错误:

alesblaze 是我的docker hub的用户名

书店是我项目的名称

  

[错误]无法执行目标   com.spotify:docker-maven-plugin:1.0.0:build(默认)在项目上   书店:捕获到异常:请求错误:POST   http://localhost:2375/build?t=alesblaze%2FBookstore:500,正文:   {“ message”:“无效的引用格式:存储库名称必须为   小写“}”:HTTP 500内部服务器错误

Dockerfile

FROM tomcat:8.5-alpine
EXPOSE 8080
VOLUME /volume/webapp/
COPY /target/BookStore-1.war /usr/local/tomcat/webapps/app.war
RUN sh -c 'touch /usr/local/tomcat/webapps/app.war'
ENTRYPOINT ["sh", "-c" , "java -Djava.security.edg=file:/dev/./urandom -jar /usr/local/tomcat/webapps/app.war]

Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>net.codejava.javaee.bookstore</groupId>
  <artifactId>Bookstore</artifactId>
  <version>1</version>
  <packaging>war</packaging>

    <properties>
    <docker.image.prefix>alesblaze</docker.image.prefix>
    </properties>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.30</version>
        </dependency>
    </dependencies>  

  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
        <finalName>BookStore</finalName>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>

      <plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.0.0</version>
    <configuration>
    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
    <dockerDirectory>Docker</dockerDirectory>
    <dockerHost>http://localhost:2375</dockerHost>
    <forceTags>true</forceTags>
    <imageTags>
    <imageTag>${project.version}</imageTag>
    <imageTag>latest</imageTag>
    </imageTags>
    <serverId>docker-hub</serverId>
    <registryUrl>https://hub.docker.com/</registryUrl>
    <resources>
    <resource>
    <targetPath>/</targetPath>
    <directory>${project.build.directory}</directory>
    <include>${project.build.finalName}.war</include>
    </resource>
    </resources>
    </configuration>
    <executions>
    <execution>
    <phase>package</phase>
    <goals>
    <goal>build</goal>
    </goals>
    </execution>
    </executions>
</plugin>

    </plugins>
  </build>
</project>

1 个答案:

答案 0 :(得分:0)

图片名称(即Bookstore)必须小写。参见Lowercase images names in Docker

如果您运行:

 docker build -t Bookstore

您遇到相同的错误

invalid reference format: repository name must be lowercase

尝试将artifactId Bookstore更改为小写。