Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker-compose: no main manifest attribute in /app.war

I am trying to containerize my spring boot application, however I am running into issues with docker...

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

Then running docker-compose up yields the following error

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

I don't understand why it is saying I have no main manifest attribute?

Here is my Main.java

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);
    }
}

My docker-compose.yml and Dockerfile

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"
~

And the Dockerfile

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"]

Can someone point me in the correct direction?

like image 252
j-money Avatar asked Oct 26 '25 06:10

j-money


1 Answers

If you intend to run your app as a stand alone application, package it as a jar file instead of war file. Packaging as a war file implies you'll be deploying it to a web server such as Tomcat, and therefore the java -jar option won't work.

like image 119
Mike Avatar answered Oct 28 '25 21:10

Mike



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!