我有一个像这样的env变量值:
TEST_VAR=The value
有谁知道这是否合法?我应该"在码头工具中根据需要放置这个值吗?谢谢
编辑:引号不是一个好的解决方案,因为它将成为val的一部分参见此处.
考虑我有一些抽象的 Vehicle类和汽车,卡车,摩托车抽象类派生自Vehicle.还想象一下,我必须能够为卡车和摩托车制造基于燃料的汽车或电动汽车等.(具体课程)
两个问题:
1.考虑到我想以多态的方式在车辆中充满能量而不知道它是什么.例如,如果车辆是基于燃料的,我想用燃料填充它,方法应该有3个参数:
void FillUpEnergy(EfuelType i_fuelType,int amounOfEnergy, int maxAmountOfEnergy)
但对于电动车辆,我需要几乎相同的功能,但这次当然没有燃料类型,例如(2个参数):
void FillUpEnergy(int amounOfEnergy, int maxAmountOfEnergy)
Run Code Online (Sandbox Code Playgroud)
我可以FillUpEnergy用上述约束做一个多态方法吗?(不同方法的签名)
2.在我的实现中,所有具体类都有Engine(另一个抽象类)的引用,它代表一个FuelEngine或ElectricEngine(我从Engine派生的其他具体类).例如,我有一个名为的具体类ElectricCar,它包含一个引用ElectricEngine.
这种架构是否足够好或是否有更好的方法来实施车库系统?(在面向对象设计等方面......)
当我以requests这种方式使用python的模块时:
response = requests.get('http://[some_api_url]')
print response.json()
与通过浏览器查看json相反,我获得了不同的json订购.
例如:
通过response.json()我得到:
[{"key2":"value2"},{"key1:"value1"}]
而通过浏览器,我认为它应该是:
[{"key1:"value1"},{"key2":"value2"}]
编辑:response.text以正确的顺序打印它但不是json
我有以下结构来说明:
list1 = [{'dict1':1}, {'dict2':2}]
list2 = [{'dict2':2}, {'dict1':1}]
现在我如你所见,这两个列表的内容相同,但list1 == list2产生False.
我有一个测试,使用pytest它的哪一行是:
assert list1 == list2
我想要返回的能力True(内容检查),如果有差异以pytest类似的方式向他们展示它们,它会在执行以下操作时引发:
assert 'hi1'=='hi2'
任何想法将不胜感激
考虑您有以下代码:
public abstract class MenuItem
{
protected string m_Title;
protected int m_Level;
protected MenuItem m_ParentItem;
public event ChooseEventHandler m_Click;
protected MenuItem(string i_Title, int i_Level, MenuItem i_ParentItem)
{
m_Title = i_Title;
m_Level = i_Level;
m_ParentItem = i_ParentItem;
}
}
Run Code Online (Sandbox Code Playgroud)
和
public class ContainerItem : MenuItem
{
private List<MenuItem> m_SubMenuItems;
public ContainerItem(string i_Title, int i_Level, MenuItem i_ParentItem)
:base(i_Title, i_Level, i_ParentItem)
{
m_SubMenuItems = new List<MenuItem>();
}
public string GetListOfSubItems()
{
string subItemsListStr = string.Empty;
foreach (MenuItem item in m_SubMenuItems)
{
item.m_Title = …Run Code Online (Sandbox Code Playgroud) 我有一个MemoryStream由Stream类型参数传递的对象
(Stream在C#中是抽象类).
我想克隆他,并创建另一个MemoryStream对象与原始的当前位置的一面,并创建一个新XMLReader的,所以我将能够阅读其内容.
这就是我所做的,它不起作用(调试标有//* - >的行newReader有{None}值)
假设:你在一个方法内并有Stream currentStream参考.
var x = new XmlReaderSettings();
x.IgnoreWhitespace = true;
using (var newMemoryStream = new MemoryStream())
{
stream.CopyTo(newMemoryStream);
using (var newReader = XmlReader.Create(newMemoryStream,x)) //*
{
Doing some stuff...
}
}
Run Code Online (Sandbox Code Playgroud) 我的目标是使用 ssl 支持设置 rabbitmq,这是以前使用以下rabbitmq.config文件实现的,该文件位于主机的/etc/rabbitmq路径中。
现在我希望能够配置其他 rabbitmq 用户和密码而不是 defaults guest guest。
我正在使用具有以下 docker-compose 配置的 rabbitmq docker 图像:
version: '2'
services:
rabbitmq:
build: ./rabbitmq
ports:
- "8181:8181"
expose:
- "15672"
- "8181"
volumes:
- /etc/rabbitmq:/etc/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: user123
RABBITMQ_DEFAULT_PASS: 1234
Run Code Online (Sandbox Code Playgroud)
RabbitMQ 配置:
version: '2'
services:
rabbitmq:
build: ./rabbitmq
ports:
- "8181:8181"
expose:
- "15672"
- "8181"
volumes:
- /etc/rabbitmq:/etc/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: user123
RABBITMQ_DEFAULT_PASS: 1234
Run Code Online (Sandbox Code Playgroud)
Rabbitmq dockerfile:
from rabbitmq:management
#and some certificate generating logic
Run Code Online (Sandbox Code Playgroud)
我注意到,一旦添加environment …
我是 docker-compose 的新手。
我试图了解如何通过 docker-compose 传递环境变量,以在Dockerfile构建阶段填充配置文件中缺少的变量值,因此在运行阶段,我将运行该服务 -rabbitmq其配置填充了 env变量值。
在 docker-compose yml 文件中,我有一个env_file:和environment:,问题是如何将它们转发以填充配置文件。
当然,如果有任何帮助、想法和简单的例子,我们将不胜感激。
示例rabbitmq配置文件(带有环境变量,需要填充$SSL_PORT的值):
[{rabbit,
[
{loopback_users, []},
{ssl_listeners, [$SSL_PORT]},
{ssl_options, [{cacertfile,"/etc/rabbitmq/ca/cacert.pem"},
{certfile,"/etc/rabbitmq/server/cert.pem"},
{keyfile,"/etc/rabbitmq/server/key.pem"},
{verify,verify_none},
{fail_if_no_peer_cert,false}]}
]}
].
Run Code Online (Sandbox Code Playgroud) 我有docker-compose.yaml如下
问题:我的问题是标准输出打印或写入它的日志出现在灰色日志中 - 但只是在命令 /usr/bin/tini 下的那些 - foo1.start。当我尝试使用以下
docker exec -it [container_hash] bash
命令进入服务的 docker 容器时:启动命令,例如 echo "Hello" 或运行我将在其中执行的 python 脚本import sys; sys.stdout.write("Hello again")--> 在 Graylog UI 中收到的消息中不会出现这些消息。
知道为什么没有通过在容器内执行 shell 命令或脚本来收集 stdout 吗?并且仅从作为 make file 命令的结果运行的内容中收集打印?
我不理解这种行为,因为我将所有标准输出通过管道传输到 docker-compose 中的 gelf 日志驱动程序。
编辑:如何在撰写中使用 graylog 的说明来自这里
version: '3.4'
services:
foo1:
ports:
- target: 8081
published: 8084
mode: host
networks:
- dev-net
command: make foo1.start
logging:
driver: gelf
options:
gelf-address: udp://localhost:12201
some-mongo:
image: "mongo:3"
networks:
- dev-net …Run Code Online (Sandbox Code Playgroud) docker ×4
c# ×3
python ×3
rabbitmq ×3
bash ×2
inheritance ×2
amqp ×1
gelf ×1
graylog2 ×1
memorystream ×1
oop ×1
pika ×1
polymorphism ×1
protected ×1
pytest ×1
python-2.7 ×1
ssl ×1
stream ×1
xmlreader ×1