小编tin*_*lly的帖子

将一个Object作为Json存储在Amazon Dynamo中是一个好主意吗?

在查看Amazon DynamoDB之后,我一直在试图找出如何存储我在代码中创建的复杂对象并希望保留.我理解如何将这些对象存储在像MySql这样的关系数据库中,但是如何将它们存储在DynamoDB中呢?

我可以想到一种方法....将它们转换为Json并将对象的Json表示存储在DynamoDB中.为了让它们再次从DynamoDB中取出,我会将它们从Json转发回我的代码中的Object表示.

这是一个例子:

对于这种类型的对象:汽车有一个具有许多零件的引擎.每个零件都有一个序列号,一个寿命和一个替换值.现在我可以将Car变成json,看起来像这样:

{
    "engine": {
        "parts": [
            {
                "serialNumber": "1234",
                "lifeSpan": 10,
                "replacementValue": 100
            },
            {
                "serialNumber": "5678",
                "lifeSpan": 1,
                "replacementValue": 200
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该将上面的Json存储在Dynamo中作为Key:CarName'Jaguar',Value [在json之上]?或者有更好的方法来存储汽车对象?

amazon-dynamodb

6
推荐指数
1
解决办法
8175
查看次数

我如何在以后附加到正在运行的Docker容器?

我想简单地启动一个docker容器来执行一些最终启动JBoss的java代码.

这工作正常,除了我无法弄清楚如何再次附加到容器并返回到bash提示符.

这就是我启动容器的方式:

docker run -i -t -p 80:80 -v /tmp/automatefiles:/automatefromhost jboss bash -c 'cd automatefromhost; chmod 777 *.*; ./runAutomate.sh;'
Run Code Online (Sandbox Code Playgroud)

这是runAutomate.sh

/usr/bin/java -cp Automate.jar -Djava.net.preferIPv4Stack=true net.Automate > automateresults &
tail -f automateresults
Run Code Online (Sandbox Code Playgroud)

现在我必须在最后执行尾部以使容器在完成运行我的Automate代码后保持运行.最终的结果是Jboss正在运行我的应用程序配置正确.

现在当我再次尝试连接到容器时,我只得到一个没有提示的空白屏幕......并且无法返回到容器内的提示符.所以没有办法在容器启动后与容器进行交互.

关于我如何启动容器的任何想法,让它保持运行然后再附加到容器并返回到提示中 ls, tail etc .

编辑:我最终这样做:

我复制了这种方法:https://stackoverflow.com/a/20932423/1519407 并添加到我的脚本中

while ( true )
    do
    echo "Detach with Ctrl-p Ctrl-q. Dropping to shell"
    sleep 1
    /bin/bash
done
Run Code Online (Sandbox Code Playgroud)

这仍然看起来有点hacky但是它有效......我认为最好沿着安装ssh到容器上的路径或使用类似http://phusion.github.io/baseimage-docker/的东西

docker

3
推荐指数
1
解决办法
7690
查看次数

标签 统计

amazon-dynamodb ×1

docker ×1