当前位置: 首页 > 知识库问答 >
问题:

Spring引导无法在docker中启动

史昊焱
2023-03-14

我在Docker中运行spring boot应用程序时遇到了一点问题。

堆栈:Maven3+,spring boot(jpa/rest/jetty)-mysql-deploy in docker

所以,我的pom文件里有

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.0.M3</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <!-- SPRING BOOT DEPENDENCIES -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!-- add for exlude tomcat -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- END SPRING BOOT DEPENDENCIES-->
    <!-- Jetty (tomcat replacement) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>
    <!-- mysql connector -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <!-- optional dependency javax.el -->
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>javax.el-api</artifactId>
        <version>3.0.0</version>
    </dependency>
    <!-- google http client -->
    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>1.21.0</version>
    </dependency>
    <!-- google http jackson -->
    <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client-jackson2</artifactId>
        <version>1.21.0</version>
    </dependency>
</dependencies>
user$ java -Xmx768m -jar /mnf-backend.jar --spring.datasource.url=jdbc:mysql://$MYSQL_PORT_3306_TCP_ADDR/app_1?autoReconnect=true&useSSL=false
user$ #<--- LOOK AT THIS jvm has return of control with 1 status (or same status but not negative)
 :: Spring Boot ::             (v1.4.0.M3) # <--- spring boot starts by itself. HOW????
ENTRYPOINT ["java", "-Xmx768m", "-jar", "/mnf-backend.jar", "--spring.datasource.url=jdbc:mysql://$MYSQL_PORT_3306_TCP_ADDR/app_1?autoReconnect=true&useSSL=false"]
FROM frolvlad/alpine-oraclejdk8:slim

ENV MNFB_ENV production
ENV SERVER_PORT 9000

ADD ./builds/mnf-latest.jar mnf-backend.jar

EXPOSE 9000



ENTRYPOINT ["java", "-Xmx768m", "-jar", "/mnf-backend.jar", "--spring.datasource.url=jdbc:mysql://$MYSQL_PORT_3306_TCP_ADDR/minifinance?autoReconnect=true&useSSL=false"]

user$ node ./server.js
[...here program output and stdout strings]
[... it may be stopped by ctrl+c for example]

共有1个答案

段干茂实
2023-03-14

我认为问题出在命令行中的与号(&)上:

--spring.datasource.url=jdbc:mysql://$mysql_port_3306_tcp_addr/app_1?autoreconnect=true&usessl=false“]

试着逃避它:

 类似资料:
  • 我使用的是Spring boot 2.2.5和Spring data redis和Bitnami/redis-Sentinel sentinel docker Image。 我可以用redis-cli连接到redis。(cli显示127.0.0.1:6379) 但在我本地的Spring boot应用程序中,它不起作用。错误跟踪如下所示: IP地址172.28.0.2是docker映像中的redis

  • 在 Windows 上执行命令将返回以下结果: 运行诊断程序会产生以下结果:

  • 我使用的是Spring boot,这里是maven依赖项 我试图用Angular创建一个HTTP请求帖子(我也有一个工作正常的GET请求),但我得到了这个 在响应头中 我意识到在响应中,allow没有POST方法。 控制器中的方法

  • 问题内容: 我一直在尝试 在Ubuntu 16.04上 使用 Docker(1.10), 但安装失败,因为 Docker Service无法启动 。我已经尝试通过 docker.io和docker -engine apt软件包安装 docker ,但是它不起作用。 我的 主机信息 是: 这里是 : 这是 这是 ./check- config.sh 输出: 如果有人可以帮助我,我将非常感激 问题答案

  • 我正在尝试使用OpenJDK15、SpringBoot2.6.0、Springfox3启动一个SpringBoot项目。 我们正在开发一个取代Netty作为Web服务器并使用Jetty的项目,因为我们不需要非阻塞环境。 在代码中我们主要依赖于Reactor API (Flux,Mono),所以我们不能移除< code > org . spring framework . boot:spring-b

  • 问题内容: [症状] 使用官方步骤安装Jenkins,但失败,并显示错误消息 无法启动LSB:在启动时启动Jenkins 。 重现步骤 控制台日志 [环境] Ubuntu 18.04 LTS Beta2 Jenkins2.107.2 问题答案: [根本原因] Ubuntu 18.04 LTS使用Java 9作为默认Java Jenkins 2.107.2仍使用Java 8 [解] 在安装Jenki