示例#1
0
文件: cli.py 项目: alongubkin/ppm
def install():
    loader = PackageLoader()
    package = loader.load(os.getcwd())

    client_factory = DockerClientFactory()
    client = client_factory.get_client()

    container = client.create_container(
        image=package.current_image,
        stdin_open=True,
        tty=True,
        command="pip install flask",
        working_dir=MOUNT_DIRECTORY,
        host_config=client.create_host_config(binds={
            os.getcwd(): {
                "bind": MOUNT_DIRECTORY,
                "mode": "rw"
            }
        })
    )

    dockerpty.start(client, container)

    # Update package image
    package.current_image = client.commit(container.get("Id")).get("Id")
    loader.save(os.getcwd(), package)
示例#2
0
文件: cli.py 项目: alongubkin/ppm
def init(name, version, description, entry_point, base_image):
    package = Package(name, version, description, entry_point, base_image)

    loader = PackageLoader()

    generator = loader.save(os.getcwd(), package,
                            should_require_confirmation=True)
    package_file_path, package_file_contents = generator.next()

    click.echo()
    click.echo(click.style("About to write to {}:".format(package_file_path),
                           fg="green", bold=True))
    click.echo()

    click.echo(package_file_contents)
    click.echo()

    if click.confirm(click.style("Is this OK?", fg="green"), default=True):
        generator.next()
    else:
        click.echo(click.style("Aborted.", fg="red", bold=True))