【问题标题】:How do I run startup scripts for DOCKER when deployed via Cloud Compute Engine instances?通过 Cloud Compute Engine 实例部署时,如何为 DOCKER 运行启动脚本?
【发布时间】:2019-01-29 05:20:32
【问题描述】:

我正在 GCP 的 Cloud Engine 部分下创建一个实例模板。

通常在部署 docker 镜像时,在指定要拉取和构建的基础镜像后,有一个包含一些启动脚本的 docker 文件,但是我看不到在哪里可以提交 docker 文件或输入启动脚本。

我可以看到云计算实例的启动脚本字段,但这与为 Docker 启动传递的脚本不同。

这些可能要填写在“命令”、“命令参数”或“环境变量”下吗?

为了澄清,这是我从 Google 图片中提取的 dockerfile 的其他人的图片。我想添加的部分是红色的“矩形”,即 RUN 命令,但不是这些确切的命令。

就我而言,我想添加类似

的内容

RUN python /pythonscript.py

【问题讨论】:

    标签: docker google-cloud-platform google-compute-engine


    【解决方案1】:

    如果我理解得很好,您是在尝试创建 Docker 映像而不是计算实例映像。

    计算实例可以运行您已经构建并推送到 gcr 或任何其他存储库的 docker 映像。

    尝试正常构建您的 docker 映像,将其推送到 docker repo 中,然后使用它。

    【讨论】:

    • 不,docker 镜像已经制作并推送。这个计算引擎将从 repo 部署它,我想运行一些启动命令。我在 OP 中添加了一个示例来澄清。
    • Man...这就是我和 Ivan 所说的...你需要构建一个镜像... RUN 命令仅在容器镜像构建期间使用...
    【解决方案2】:

    您可以使用“命令”部分直接在 Docker 容器中运行启动脚本。如果您需要在启动容器(例如 Apache)后安装某些东西,您应该使用具有 Apache 的 Docker 映像。

    如果您需要运行一些其他参数,例如创建环境变量,here 您可以在 VM 实例上创建容器映像时找到完整的标志列表。

    【讨论】:

    • 似乎也不完全是环境变量,我在OP中添加了一个示例来澄清。
    • 因为你想在启动脚本中安装,最好创建一个dockerfile并创建一个新的docker镜像。基本上,您获取一个基本映像并在其之上安装额外的应用程序。创建 docker 映像后,您可以将其推送到 Google Cloud Registry。启动脚本并不能保证您将安装所有内容,因为 VM 需要一些时间来启动并访问 Internet。您应该使用启动脚本来启动应用程序或类似的,但不要继续创建 Docker 映像。
    • 是的,我希望启动脚本启动一些保存在 / 中并且已经提交到 docker 映像中的预先编写的 .py 脚本,而不是继续构建映像。如何在该 GUI 中添加启动脚本?
    • 我一直在不同的地方搜索,我认为你应该使用 bash 脚本并从那里指定 py 文件。如果您检查this link,您将看到 docker 中的端点可以替换为 bash 脚本。这是脚本的示例。 #!/bin/bash echo "import time print(time.time())" > test.py python test.py python /path/to/file.py 将脚本保存在 docker 镜像中,并在创建 VM 实例时将其路径放在 Command 部分。我希望这会有所帮助。
    猜你喜欢
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    相关资源
    最近更新 更多