小编Jar*_*ell的帖子

将进程附加到Docker libcontainer容器

在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实现这一点.

docker

9
推荐指数
1
解决办法
1864
查看次数

用作Symfony参数的非标量ENV

我正在尝试使用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级别,如果有的话.

谢谢.

environment-variables symfony

5
推荐指数
1
解决办法
69
查看次数

AWS PHP SDK v3 中的响应日志记录

在 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)

php monolog guzzle aws-php-sdk guzzle6

5
推荐指数
1
解决办法
1347
查看次数

切换 Git 子树分支的正确方法?

假设我已经添加了一个新的远程“foo”,并拉了一个子树,压扁了,分支主。

$ git remote add -f foo some-repo.git
$ git subtree add --prefix=foo --squash foo master
Run Code Online (Sandbox Code Playgroud)

从我读过的文章(herehere等)来看,这似乎是切换分支的常用方法。在这种情况下,要分支“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)

git subtree git-subtree

5
推荐指数
1
解决办法
1006
查看次数