2017年2月10日 星期五

aws eb multi docker Dockerrun.aws.json

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_v2config.html

{
  "AWSEBDockerrunVersion": 2,
  "volumes": [
    {
      "name": "app",
      "host": {
        "sourcePath": "/var/app/current/app"
      }
    },

    {
      "name": "nginx-proxy-conf",
      "host": {
        "sourcePath": "/var/app/current/proxy/conf.d"
      }
    },
    {
      "name": "mongo"
    },
    {
      "name": "parse-server"
    }
  ],
  "containerDefinitions": [
    {
      "name": "app",
      "image": "node:latest",
      "essential": true,
      "memory": 256, //不能太少,會 npm install 失敗
      "command": [
        "/bin/bash",
        "/usr/src/app/run-dev.sh"
      ],
      "portMappings": [
        {
          "hostPort": 3000,
          "containerPort": 3000
        }
      ],
      "mountPoints": [
        {
          "sourceVolume": "app",
          "containerPath": "/usr/src/app"
        }
      ]
    },

    {
      "name":"mongo",
      "image":"mongo",
      "essential": true,
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 27017,
          "containerPort": 27017
        }
      ]

    },
    {
      "name": "parse-server",
      "image": "yongjhih/parse-server",
      "essential": true,
      "memory": 256,
      "portMappings": [
        {
          "hostPort": 1337,
          "containerPort": 1337
        }
      ],
      "mountPoints": [
        {
          "sourceVolume": "app",
          "containerPath": "/usr/src/app"
        }
      ],
      "links": [
        "mongo"
      ],
      "environment": [
        {
          "name":"parse-server",
          "PORT": "1337",
          "DATABASE_URI":"mongodb://mongo:27017/test",
          "APP_ID":"test",
          "MASTER_KEY":"test_MASTER_KEY",
          "JAVASCRIPT_KEY":"test_JAVASCRIPT_KEY"

        }
      ]
    },
 
    {
      "name": "nginx-proxy",
      "image": "nginx",
      "essential": true,
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80
        }
      ],
      "links": [
        "parse-server",
        "mongo",
        "app"
      ],
      "mountPoints": [
        {
          "sourceVolume": "awseb-logs-nginx-proxy",
          "containerPath": "/var/log/nginx"
        },
        {
          "sourceVolume": "nginx-proxy-conf",
          "containerPath": "/etc/nginx/conf.d",
          "readOnly": true
        }
      ]
    }

  ]
}