实际上我想要一个适用于JEE容器的解决方案,特别是Glassfish,但是在我尝试了很多设置组合并且没有成功之后,我将设置简化为最简单的情况.
这是我在Docker容器中启动的Hello World守护进程.我想附加jconsole或者VisulaVM它.一切都在同一台机器上.
public class Main {
public static void main(String[] args) {
while (true) {
try {
Thread.sleep(3000);
System.out.println("Hello, World");
} catch (InterruptedException e) {
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"]
Run Code Online (Sandbox Code Playgroud)
建造: docker build -t hello-world-daemon .
运行: docker run -it --rm --name hwd hello-world-daemon
问题:
CMD命令行?我没有在这里展示我失败的尝试,所以正确的答案不会有偏见.这应该是一个非常常见的问题,但我找不到有效的解决方案.
更新.工作解决方案
这个Dockerfile有效
FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用NW.js构建一个简单的桌面应用程序.通过一些帖子的启发,包括这一次,我想尝试一个纯粹的npm做法没有任何bower,grunt或gulp.
所以我继续使用jquery和bootstrap库作为npm模块安装.当我在我的应用程序的JavaScript中注入模块时,如下所示:
global.jQuery = $ = require("jquery");
var bootstrap = require("bootstrap");
Run Code Online (Sandbox Code Playgroud)
我ReferenceError: document is not defined来自一个bootstrap.我可以bootstrap通过老式的方式加载html文档:
<script type="text/javascript" src="node_modules/bootstrap/dist/js/bootstrap.js"></script>
Run Code Online (Sandbox Code Playgroud)
我问自己require在脚本文件中加载bootstrap trough是否是一个愚蠢的想法?基本上,我不需要那里.它可以通过html中的脚本标记加载.什么是最佳做法?我糊涂了.
更新.解决方案
接受了@Kuf的建议后,我创建了一个build.js脚本
var copyfiles = require('copyfiles');
copyfiles(["node_modules/bootstrap/dist/js/bootstrap.js", "vendor/js"], true, function (err) {
if (err) return console.error(err);
});
copyfiles(["node_modules/bootstrap/dist/css/bootstrap.css", "vendor/css"], true, function (err) {
if (err) return console.error(err);
});
Run Code Online (Sandbox Code Playgroud)
由prestart钩子触发: …