1

私たちは、docker クラスターにデプロイするためのマラソンを調査してきました。アプリケーション アーキテクチャには、アプリケーション サーバーがアクセスする必要がある postgresql データベースがあります。

開発段階では、fig を使用して Docker 間のリンクを作成し、Docker によって課された環境変数を使用して宛先 (アプリケーション サーバーから postgresql) に接続しました。

それでも、Marathon では同様のアプローチを見つけることができませんでした。依存関係を使用しようとしましたが、うまくいきませんでした。以下は Marathon.json ファイルです。

{
    "id": "/project",
    "groups": [
        {
            "id": "apps",
            "apps": [
                {
                    "id": "app",
                    "mem": 1024,
                    "env": {
                        "APP_HOME": "/var/lib/app",
                        "GIT_BRANCH": "release/2.0.0",
                        "SETTING_FILE": "development",
                        "BROKER_URL": "redis://redis_1:6379/0"
                    },
                    "dependencies": ["database", "caching", "messaging"],
                    "container": {
                        "type": "DOCKER",
                        "docker": {
                            "image": "xxx/aok:app"
                        }
                    },
                    "volumes": [
                        {
                            "containerPath": "/var/lib/app",
                            "hostPath": ".",
                            "mode": "RW"
                        }
                    ]
                },
                {
                    "id": "celery",
                    "mem": 1024,
                    "env": {
                        "APP_HOME": "/var/lib/app",
                        "GIT_BRANCH": "release/2.0.0",
                        "SETTING_FILE": "development",
                        "BROKER_URL": "redis://redis_1:6379/0"
                    },
                    "container": {
                        "type": "DOCKER",
                        "docker": {
                            "image": "xxx/aok:celery"
                        }
                    },
                    "volumes": [
                        {
                            "containerPath": "/var/lib/app",
                            "hostPath": ".",
                            "mode": "RW"
                        }
                    ]
                },
                {
                    "id": "celeryhb",
                    "mem": 1024,
                    "env": {
                        "APP_HOME": "/var/lib/app",
                        "GIT_BRANCH": "release/2.0.0",
                        "SETTING_FILE": "development",
                        "BROKER_URL": "redis://redis_1:6379/0"
                    },
                    "container": {
                        "type": "DOCKER",
                        "docker": {
                            "image": "xxx/aok:celeryhb"
                        }
                    },
                    "volumes": [
                        {
                            "containerPath": "/var/lib/app",
                            "hostPath": ".",
                            "mode": "RW"
                        }
                    ]
                }
            ]
        },
        {
            "id": "database",
            "apps": [
                {
                    "id": "pg",
                    "mem": 1024,
                    "container": {
                        "type": "DOCKER",
                        "docker": {
                            "image": "mughrabi/aok:pg"
                        },
                        "volumes": [
                            {
                                "containerPath": "/var/lib/postgresql/data",
                                "hostPath": "/tmp/aok-postgres-data",
                                "mode": "RW"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "id": "caching",
            "apps": [
                {
                    "id": "redis",
                    "mem": 1024,
                    "container": {
                        "type": "DOCKER",
                        "docker": {
                            "image": "redis"
                        }
                    }
                }
            ]
        },
        {
            "id": "messaging",
            "apps": [
                {
                    "id": "rabbitmq",
                    "mem": 1024,
                    "container": {
                        "type": "DOCKER",
                        "docker": {
                            "image": "rabbitmq"
                        }
                    }
                }
            ]
        }
    ]
}

誰かアドバイスしてもらえますか?

4

1 に答える 1

1

Consul https://www.consul.io/や etcd https://github.com/coreos/etcdなどの使用を検討してください

于 2014-10-31T21:53:41.473 に答える