我正在如下面的cmd转储中显示的流浪汉机器中设置同步文件夹,并期望每当我更新主机上此文件夹中的文件时,更新也将反映在客户机内,但是这不会发生.
下面是转储和它不会发生(我创建了一个样本文件,并通过从它在改变文本修改的证据test1来test2):
mypc:~ user$ cd Projects/synctest/
mypc:synctest user$ ls
Vagrantfile
mypc:synctest user$ cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# always use Vagrants insecure key
config.ssh.insert_key = false
# Setup box
config.vm.box = "coreos-stable"
# Setup shared folder
config.vm.synced_folder ".", "/vagrant"
# Setup memory usage
config.vm.provider "virtualbox" do |v|
v.memory = 2048
end
# Define `dev` vm
config.vm.define :dev do |dev|
end
if Vagrant.has_plugin?("vagrant-cachier")
config.cache.scope …Run Code Online (Sandbox Code Playgroud) 我的docker-compose看起来像这样:
version: '3.2'
services:
mq:
hostname: ${HOST_NAME}
ports:
- "5671:5671"
- "5672:5672"
- "15671:15671"
- "15672:15672"
environment:
- RABBITMQ_DEFAULT_USER=${USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}
volumes:
- ${CACERT_PEM_FILE}:/etc/rabbitmq/certs/cacert.pem
- ${CERT_PEM_FILE}:/etc/rabbitmq/certs/cert.pem
- ${KEY_PEM_FILE}:/etc/rabbitmq/certs/key.pem
- ${MQ_CONFIG_FILE}:/etc/rabbitmq/rabbitmq.conf
image: rabbitmq:3-management
Run Code Online (Sandbox Code Playgroud)
我的rabbitmq.conf看起来像这样:
listeners.tcp.default = 5672
listeners.ssl.default = 5671
ssl_options.cacertfile = /etc/rabbitmq/certs/cacert.pem
ssl_options.certfile = /etc/rabbitmq/certs/cert.pem
ssl_options.keyfile = /etc/rabbitmq/certs/key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = false
ssl_options.versions.1 = tlsv1.2
ssl_options.versions.2 = tlsv1.1
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,docker-compose up我收到以下错误:
cannot rename /etc/rabbitmq/sedMaHqMa: Device or resource busy
我尝试使用旧格式的配置文件(rabbitmq.config)并且它没有给我这个错误,但是我需要使用新格式,因为我需要在启动期间通过env提供密码.变量.
编辑2018年2月20日
以下是Rabbitmq docker映像中当前可用环境变量的列表,它们足以为AMQP和HTTP(管理API和Web控制台)设置TLS
复制它们以防链接断开:
RABBITMQ_DEFAULT_PASS
RABBITMQ_DEFAULT_USER …Run Code Online (Sandbox Code Playgroud) 我正在构建一个webapp,并通过http2进行服务。但是,当我在Google Chrome浏览器(版本59.0.3071.115(正式版本)(64位))的开发人员工具中分析网络时,很明显,多路复用不起作用,因为只有6个活动连接(例如http1.1)其余的连接排队。
为什么是这样?还是我的期望不正确?
屏幕截图(您可以看到该协议为http2):
更新#1:
async在循环中创建带有属性的脚本标签);我试图在我通过Docker安装的Websphere Liberty配置文件中运行的非常简单的Web应用程序中使用CDI.
但是注入失败,除非我@ApplicationScoped在注入的bean上指定范围注释(例如),尽管根据许多在线教程(例如,这个),Java EE规范不要求这样做.
以下是失败的代码:
HelloWorldServlet.java
package my.simple.app;
import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/HelloWorld")
public class HelloWorldServlet extends HttpServlet {
static String PAGE_HEADER = "<html><head /><body>";
static String PAGE_FOOTER = "</body></html>";
@Inject
HelloService helloService;
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
writer.println(PAGE_HEADER);
writer.println("<h1>" + helloService.createHelloMessage("World") + "</h1>");
writer.println(PAGE_FOOTER);
writer.close();
}
}
Run Code Online (Sandbox Code Playgroud)
HelloService.java
package my.simple.app;
public class HelloService { …Run Code Online (Sandbox Code Playgroud)