首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker-组合:在/app.war中没有主清单属性

Docker-组合:在/app.war中没有主清单属性
EN

Stack Overflow用户
提问于 2018-11-15 22:00:11
回答 1查看 4.5K关注 0票数 3

我试图封装我的spring引导应用程序,但是我遇到了与docker有关的问题。

代码语言:javascript
运行
复制
docker-compose build
db uses an image, skipping   
Building drools-average-docker-app
Step 1/5 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/5 : VOLUME /tmp
 ---> Using cache
 ---> 6bbb9078c3f0
Step 3/5 : ADD target/DroolsAverage-0.0.1-SNAPSHOT.war DroolsAverage.war
 ---> 8a01751a6ac9
Step 4/5 : RUN bash -c 'touch /DroolsAverage.war'
 ---> Running in 330ed2275089
Removing intermediate container 330ed2275089
 ---> 65cf51ebf28f
Step 5/5 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/DroolsAverage.war"]
 ---> Running in 65357cc5afed
Removing intermediate container 65357cc5afed
 ---> acb6358e4c0e
Successfully built acb6358e4c0e
Successfully tagged drools-average-docker-image:latest

然后运行docker-compose up将产生以下错误

代码语言:javascript
运行
复制
Recreating droolsaverage_drools-average-docker-app_1_2d763cdbed6c ... done
Starting droolsaverage_db_1_efa205bdb880                          ... done
Attaching to droolsaverage_db_1_efa205bdb880, droolsaverage_drools-average-docker-app_1_2d763cdbed6c
db_1_efa205bdb880            | 2018-11-15 21:54:13.781 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1_efa205bdb880            | 2018-11-15 21:54:13.781 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_1_efa205bdb880            | 2018-11-15 21:54:13.795 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1_efa205bdb880            | 2018-11-15 21:54:13.827 UTC [18] LOG:  database system was shut down at 2018-11-15 21:51:44 UTC
db_1_efa205bdb880            | 2018-11-15 21:54:13.837 UTC [1] LOG:  database system is ready to accept connections
drools-average-docker-app_1_2d763cdbed6c | no main manifest attribute, in /DroolsAverage.war
droolsaverage_drools-average-docker-app_1_2d763cdbed6c exited with code 1

我不明白为什么它说我没有主显式属性?

这是我的Main.java

代码语言:javascript
运行
复制
package com.techgap.droolsaverage.droolsaverage;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;


@SpringBootApplication
@ComponentScan (basePackages = {
        "com.techgap.droolsaverage.controller",
        "com.techgap.droolsaverage.model",
        "com.techgap.droolsaverage.util",
        "com.techgap.droolsaverage.config",
        "com.techgap.droolsaverage.exception"
})
public class Main{

     @SuppressWarnings("unused")
    private static ConfigurableApplicationContext ctx;
    @SuppressWarnings("unused")
    private int maxUploadSizeInMb = 10 * 1024 * 1024; // 10 MB

    public static void main(String[] argv) {

        SpringApplication.run(Main.class, argv);
    }
}

我的docker-compose.ymlDockerfile

代码语言:javascript
运行
复制
version: '3.1'

services:
  drools-average-docker-app:
    image: drools-average-docker-image
    build:
        context: ./
        dockerfile: Dockerfile
    ports:
        - 8080:8080
  db:
    image: postgres:11-alpine
    environment:
      POSTGRES_DB: 'droolsTestDB'
      POSTGRES_USER: 'postgres'
      POSTGRES_PASSWORD: 'postgres'
    ports:
    - "5432:5432"
~

和Dockerfile

代码语言:javascript
运行
复制
FROM java:8
VOLUME /tmp
ADD target/DroolsAverage-0.0.1-SNAPSHOT.war DroolsAverage.war
RUN bash -c 'touch /DroolsAverage.war'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/DroolsAverage.war"]

有人能给我指明正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-15 22:06:43

如果您打算将应用程序作为独立应用程序运行,请将其打包为jar文件而不是war文件。打包为war文件意味着您将将其部署到像Tomcat这样的web服务器上,因此java -jar选项无法工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53328497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档