我正在使用下面的配置创建一个docker映像。一旦image准备就绪,我想要将JAVA_OPTS传递给我的docker容器,这样它就可以传递给我的Spring Boot应用程序。每当我尝试打开容器时,我就会得到“Runtime create Failed:CONTAINER_Linux.go:348:starting container process caused”exec:\“java$JAVA_OPTS\”:在$PATH中找不到可执行文件“:unknown”错误。我是不是漏掉了什么?任何帮助都是非常感激的
DockerFile
FROM openjdk:8-jdk-alpine
LABEL maintainer="myname@test.com"
# Add a volume pointing to /tmp
VOLUME /tmp
# Make port 8080 available to the world outside this container
EXPOSE 8080
# The application's jar file
ARG JAR_FILE=target/my.jar
# Add the application's jar to the container
ADD ${JAR_FILE} my.jar
ENV JAVA_OPTS=""
# Run the jar file
ENTRYPOINT ["java $JAVA_OPTS","-Djava.security.egd=file:/dev/./urandom","-jar","/my.jar"]
Docker-Compose
version: '2.1'
services:
service1:
hostname: test
domainname: mydomain.com
image: myimage:latest
container_name: test-container
environment:
- JAVA_OPTS=-Dapp.clients.scheme=http -Dapp.clients.port=9096 -Dserver.port=8082
ports:
- "8082:8082"
不应将java$java_opts
与入口点[“sh”,“-c”,“java$java_opts”]
一起使用
它的主要问题是,使用这种方法,您的应用程序将不会接收到sigterm,因此在正常关闭的情况下,它将不会对您起作用(如果您不知道这一点,您将在这里找到更多有关问题的信息)
如果希望在docker环境中自定义java选项,请使用java_tool_options
环境属性(https://docs.oracle.com/javase/8/docs/technotes/guides/trobleshoot/envvars002.html)和entrypoint[“java”,...]
使用此属性,您甚至可以在Dockerfile中声明所需的选项,如:
ENV JAVA_TOOL_OPTIONS "-XX:MaxRAMPercentage=80"
以后可以使用外部提供的docker或kubernetes属性轻松地重写它。
jib
项目使用java_tool_options
-此处提供更多信息
我怎么做 使用Docker编写文件从Terraform脚本构建Azure应用程序服务 docker-compose.yaml代码段网 有什么想法吗?
我遇到了几个问题。以下是我的docker文件: vue.js应用程序的Dockerfile。 是通过节点的对象存储和访问的,似乎是在生成时传入的。 我是否可以访问vue.js应用程序中docker-compose.yml中设置的容器级变量?此外,是否可以将这些变量作为参数与一起传递?如果你需要任何澄清/更多信息,请告诉我。
当在docker容器中实现Java应用程序和在自己的docker容器中配置的MySQL数据库以及Docker Comuse时,在使用jdbc创建到数据库的连接时,Java应用程序中总是会出现以下错误: 相应的Docker文件和Java代码如下所示:Docker compose。yml:版本:“3.7” Java中的JDBC连接: Dockerfile: 有人有或知道这个问题吗?谢谢你的回答。
我想问一下,是否可以通过一个JavaFX类传递一个变量,什么将应用程序扩展到我的JavaFX控制器?我对JavaFx非常陌生,可能只需要一点点。 目标是将一个Id从MyClass传递给MyController。 我的应用程序类: 我的控制器:
我正在尝试向容器提供静态IP地址。我知道我必须创建一个自定义网络。我创建它并且桥接接口在主机(Ubuntu 16. x)上。容器从此子网获取IP,但不是我提供的静态。 这是我的docker-compose.yml: 容器10.5.0.2和10.5.0.3,而不是5和6。
我的React客户端的Dockerfile: 我的Express后端的Dockerfile: 我的码头工人。项目根目录中的yml文件: 我的服务器。我的后端文件夹下的js文件: 当我跑的时候: 我得到以下输出在我的终端: 我的后端以代码0退出,我无法加载我的应用程序。我的后端正在运行。 我做错了什么,如何让我的React-Express Node应用程序与Docker Comment一起运行?