def create(ctx, name, instance_type, database):
"""Create machine for the addon server.
"""
# TODO verify that database is [a-zA-Z0-9_]
echo_heading('Creating machine {name} with type {type}.'.format(
name=name, type=instance_type), marker='-', marker_color='magenta')
if settings.DEBUG:
docker_machine.check_call(
['create', '--driver', 'virtualbox', name])
else:
docker_machine.check_call(
['create', '--driver', 'amazonec2', '--amazonec2-instance-type', instance_type, name])
utils.set_aws_security_group_ingress_rule('docker-machine', 0, 65535, '0.0.0.0/0')
project_path = get_project_path()
echo_heading('Generating docker-compose file.', marker='-', marker_color='magenta')
_generate_compose_file(project_path, database)
echo_heading('Instantiating addons proxy.', marker='-', marker_color='magenta')
env_text = docker_machine.check_output(['env', name])
env = os.environ.copy()
env.update(utils.parse_shell_for_exports(env_text))
subprocess.check_call(['docker-compose', '-f', os.path.join(
project_path, 'proxy/docker-compose.prod.yml'), '-p', settings.ADDONS_COMPOSE_PROJECT_NAME, 'up', '-d'], env=env)
store.set('addon__database_container_name', database)
评论列表
文章目录