Estoy tratando de containerize mi solicitud de inicio de primavera, sin embargo estoy funcionando en problemas con el cargador de muelle ...
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
Entonces se ejecuta docker-compose up
produce el siguiente 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
No entiendo por qué se está diciendo que no tengo principal atributo manifiesto?
Aquí está mi 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);
}
}
mi docker-compose.yml
yDockerfile
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"
~
Y el 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"]
¿Puede alguien me punto en la dirección correcta?
Si tiene la intención de ejecutar su aplicación como una aplicación independiente, empaquetarlo como un archivo jar en lugar de archivo de la guerra. Empaquetado como un archivo de la guerra implica que va a implementar en un servidor web como Tomcat, y por lo tanto la java -jar
opción no funcionará.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras