में शुरू नहीं हो सकता है मुझे डॉकर में अपने वसंत बूट एप्लिकेशन को चलाने में थोड़ी सी समस्या है।वसंत-बूट डॉकर
ढेर: Maven 3+, वसंत बूट (जेपीए/बाकी/जेटी) - mysql - डोकर में तैनात
तो, मैं अपने पोम फ़ाइल में है गया है
<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>
पर्यावरण: उबंटू 16.04 64 समस्या: स्थानीय रूप से: मैं टर्मिनल में आदेश का पालन के साथ अपने अनुप्रयोग चलाने के लिए कोशिश
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????
यह अच्छा नहीं है से मैं tolerat कर सकते हैं ई यह लेकिन डॉकर नहीं। जब आदेशों ऊपर डोकर में तो डोकर बंद कंटेनर चलाया जाएगा (क्योंकि -> स्थिति 1 के साथ एप्लिकेशन को बाहर निकलने के)
ENTRYPOINT ["java", "-Xmx768m", "-jar", "/mnf-backend.jar", "--spring.datasource.url=jdbc:mysql://$MYSQL_PORT_3306_TCP_ADDR/app_1?autoReconnect=true&useSSL=false"]
डोकर कंटेनर 1 सेकंड शुरू करने और तुरंत कंटेनर बंद हो जाएगा क्योंकि जावा वापसी नियंत्रण। मैं उस विधि की तलाश करता हूं जो मुझे अनुमानित व्यवहार या किसी भी विचार के लिए वसंत ऐप को कॉन्फ़िगर करने की अनुमति देता है कि मेरे डॉकर निर्देशों को कैसे सुधारें। मेरी dockerfile सामग्री:
एक कंटेनरउदाहरण के लिए की
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"]
डोकर लॉग्स: जब मैं शुरू कर दिया है NodeJS एप्लिकेशन नियंत्रण जब तक आवेदन समाप्त नहीं हुआ वापस नहीं
user$ node ./server.js
[...here program output and stdout strings]
[... it may be stopped by ctrl+c for example]
क्या आप अपना डॉकरफ़ाइल पोस्ट कर सकते हैं? और, क्या अच्छा नहीं है कि आप सहन कर सकते हैं? – techtabu
मेरी अंग्रेजी के लिए खेद है। मेरा मतलब है कि मैं इस वसंत व्यवहार को स्थानीय रूप से बर्दाश्त कर सकता हूं लेकिन डॉकर –
में नहीं यदि ऐप (जावा) त्रुटि कोड 1 से निकलता है - इसका मतलब है कि आपको पर्यावरण में कुछ समस्याएं हैं, स्प्रिंग बूट नहीं। डॉकर कंटेनर आईडी या नाम देखें, और वहां क्या गलत हो गया है, यह जानने के लिए 'डॉकर लॉग <कंटेनर-आईडी>' का उपयोग करें। – jdevelop