在v0.9.0之前的Docker版本中,您可以使用lxc-attach将进程附加(注入)到容器中.例如:
docker run -d ubuntu:12.04
docker inspect {{containerhash}} | grep ID
// "ID": "d846ae242838de66f12414fbc8807acb3c77778bdb81babab7115261f4242284"
sudo lxc-attach -n d846ae242838de66f12414fbc8807acb3c77778bdb81babab7115261f4242284 -- /bin/bash
Run Code Online (Sandbox Code Playgroud)
由于0.9.0切换到libcontainer,这不再有效.
我们怎么能通过libcontainer来做到这一点?
有一个选项可以通过启动选项切换到lxc,但我想知道如何通过libcontainer实现这一点.
我正在尝试使用ENVs在Symfony2中设置我的参数.标量值很容易,但我有一些参数是我需要用ENV设置的数组.
有问题的参数:
parameters:
redis.servers:
- { host: 127.0.0.1, port: 6379 }
- { host: other, port: 6379 }
# and so on
Run Code Online (Sandbox Code Playgroud)
这里的踢球者是服务器阵列可以动态改变,所以我不能假设有2个.
我希望做什么(但这只是给了我一串json):
SYMFONY__REDIS__SERVERS=[{"host":"127.0.0.1","port":"6379"}]
Run Code Online (Sandbox Code Playgroud)
这可能吗?任何可行的解决方案?我们正在使用多个接受数组/对象参数的bundle,因此我无法在那里进行更新来处理param.它必须是app级别,如果有的话.
谢谢.
在 AWS PHP SDK v2 中,我只需执行以下操作即可设置请求和响应信息的日志记录:
<?php
use Monolog\Logger;
use Guzzle\Log\MonologLogAdapter;
use Guzzle\Plugin\Log\LogPlugin;
use Aws\S3\S3Client;
$monolog = new Logger('main');
$monolog_adapter = new MonologLogAdapter($monolog);
$log_plugin = new LogPlugin($monolog_adapter);
$s3_client = S3Client::factory(['region' => 'us-east-1']);
$s3_client->addSubscriber($log_plugin);
var_dump($s3_client->doesObjectExist('my-bucket', 'object-that-doesnt-exist'));
# This is the log entry I want in the v3 version:
# [2015-10-30 14:47:20] main.ERROR: myhostname aws-sdk-php2/2.8.20 Guzzle/3.9.3 curl/7.43.0 PHP/5.5.23 - [2015-10-30T14:47:20+00:00] "HEAD /my-bucket/object-that-doesnt-exist HTTP/1.1" 404 ...
# bool(false)
Run Code Online (Sandbox Code Playgroud)
在 v3 中,我似乎找不到解决方案。中间件似乎没有帮助,因为它们仅在发送请求之前触发,因此我无法访问响应 HTTP 代码。
Guzzle v6 已将此功能内置到其中间件中,但我不知道如何让它与 aws-php-sdk 一起使用。https://github.com/guzzle/guzzle/blob/master/src/Middleware.php#L180
我得到的最接近的是:
<?php
use Monolog\Logger; …Run Code Online (Sandbox Code Playgroud) 假设我已经添加了一个新的远程“foo”,并拉了一个子树,压扁了,分支主。
$ git remote add -f foo some-repo.git
$ git subtree add --prefix=foo --squash foo master
Run Code Online (Sandbox Code Playgroud)
从我读过的文章(here和here等)来看,这似乎是切换分支的常用方法。在这种情况下,要分支“bar”:
$ git rm -r foo
rm 'foo/file'.
...
$ git commit -m "Delete foo on branch 'master' to switch to branch 'bar'."
1350 files changed, 144703 deletions(-)
delete mode 100644 foo/file
...
$ git subtree add --prefix=foo --squash foo bar
git fetch foo master
From some-repo.git
* branch master -> FETCH_HEAD
Added dir 'foo'
Run Code Online (Sandbox Code Playgroud)
但这感觉很脏。为什么不直接使用已经有分支参数的“git subtree pull”(没有 rm/commit/add)?
$ …Run Code Online (Sandbox Code Playgroud) aws-php-sdk ×1
docker ×1
git ×1
git-subtree ×1
guzzle ×1
guzzle6 ×1
monolog ×1
php ×1
subtree ×1
symfony ×1