我正在尝试运行这样的MULTIPLE命令.
docker run image cd /path/to/somewhere && python a.py
Run Code Online (Sandbox Code Playgroud)
但这给了我"没有这样的文件或目录"错误,因为它被解释为......
"docker run image cd /path/to/somewhere" && "python a.py"
Run Code Online (Sandbox Code Playgroud)
似乎需要一些像""或()这样的ESCAPE字符.
所以我也试过了
docker run image "cd /path/to/somewhere && python a.py"
docker run image (cd /path/to/somewhere && python a.py)
Run Code Online (Sandbox Code Playgroud)
但这些都行不通.
我搜索了Docker Run Reference但没有找到有关ESCAPE字符的任何提示.
我正在尝试创建执行以下过程的AWS Lambda函数.
问题:意外启动了多个(5)实例.
已成功创建实例,但还会启动其他4个实例.共启动了5个实例.
日志
在此功能的Log Streams中,我发现了4个Streams用于此调用.每个Stream都不显示任何错误或异常,但似乎该函数重复执行.
审讯
我猜测该功能已超时,然后重新运行.
然后,我Timeout从5s变为60s并将文件放在S3上.它以某种方式影响了.仅出现2个Log Streams,第一个显示该功能仅执行一次,第二个显示该功能已执行两次.已启动实例的数量为3.
但是,我不知道为什么要启动多个(3)实例.
欢迎任何评论!先感谢您 :-)
我的Lambda功能
我的Lambda功能如下.(它被简化为隐藏凭证信息,但它不会丢失其基本结构)
var AWS = require('aws-sdk');
function composeParams(data, config){
var block_device_name = "/dev/xvdb";
var security_groups = [
"MyGroupName"
];
var key_name = 'mykey';
var security_group_ids = [
"sg-xxxxxxx"
];
var subnet_id = "subnet-xxxxxxx";
// Configurations for a new EC2 instance
var params = {
ImageId: 'ami-22d27b22', /* required */
MaxCount: 1, /* required */
MinCount: 1, /* required */ …Run Code Online (Sandbox Code Playgroud) 我正在尝试在EC2上配置主机,因此我正在使用Ansible Dynamic Inventory.
我想做的是; 设置每个节点的序列号.
例如:Zookeeper的"myid"配置
Zookeeper需要为每个节点命名为"myid"的序列号; 1为hostA,2为hostB,3为hostC,依此类推.
这是我的剧本中将"myid"文件复制到主机的部分.
- name: Set myid
sudo: yes
template: src=var/lib/zookeeper/myid.j2 dest=/var/lib/zookeeper/myid
Run Code Online (Sandbox Code Playgroud)
而且myid.j2应该是这样的下面.
{{ serial_number }}
Run Code Online (Sandbox Code Playgroud)
问题是:变量"{{serial_number}}"应该是什么样的?
jinja2 ansible ansible-playbook apache-zookeeper ansible-inventory
我有Mesos集群由3台CentOS6.5机器组成.
ZooKeeper和Mesos-Master在其中一台机器上运行,Mesos-Slave在每台机器上运行.
此外,Marathon正在主节点上运行.
然后,我按照 Mesosphere的指示,尝试在Marathon上运行docker容器.
job.json 如下,
{
"container": {
"type": "DOCKER",
"docker": {
"image": "libmesos/ubuntu"
}
},
"id": "ubuntu",
"instances": 1,
"cpus": 0.5,
"mem": 512,
"uris": [],
"cmd": "date -u +%T"
}
Run Code Online (Sandbox Code Playgroud)
然后我运行以下命令,
curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" <master-hostname>:8080/v2/apps -d@job.json
Run Code Online (Sandbox Code Playgroud)
然后在Marathon Web UI上,我可以看到Docker容器即使在很长一段时间后也处于"部署"状态.
在Mesos-Master Web UI上,我可以看到任务在很长一段时间后处于"STAGING"状态.
在Sandbox窗格中,我可以看到stdout,命令似乎已完成successfly.没问题.
stderr是这样的,
I0416 19:19:49.254998 29178 exec.cpp:132] Version: 0.22.0
I0416 19:19:49.257824 29193 exec.cpp:206] Executor registered on slave 20150416-160950-109643786-5050-30728-S0
Run Code Online (Sandbox Code Playgroud)
stdout是这样的,
Registered executor on master-hostname
10:19:49
Run Code Online (Sandbox Code Playgroud)
但我希望容器(TASK)在完成命令后完成. 可能吗? 如果可能,怎么做? …
docker ×2
amazon-ec2 ×1
amazon-s3 ×1
ansible ×1
aws-lambda ×1
aws-sdk ×1
docker-image ×1
jinja2 ×1
marathon ×1
mesos ×1
mesosphere ×1