【问题标题】:Running python script after container is up (Kubernetes)容器启动后运行 python 脚本(Kubernetes)
【发布时间】:2020-02-06 22:46:40
【问题描述】:

我正在使用以下 Docker 映像:https://github.com/budtmo/docker-android 这是 Android 模拟器的 Docker 映像。

我正在使用具有以下部署的 Kubernetes 运行它:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: android-deployment
spec:
  selector:
    matchLabels:
      app: android-emulator
    replicas: 10
  template:
    metadata:
    labels:
        app: android-emulator
     spec:
       containers:
       - name: android-emulator
         image: budtmo/docker-android-x86-8.1
         ports:
         - containerPort: 6080
         - containerPort: 5554
         - containerPort: 5555
         env:
         - name: DEVICE
           value: "Samsung Galaxy S8"

容器运行后自动启动 Android 模拟器(不知道具体如何)。 在每个正在运行的容器启动容器后,我需要自动运行 python 脚本, 我该怎么做?我应该在我的部署文件中进行哪些更改?

【问题讨论】:

    标签: docker kubernetes


    【解决方案1】:

    您可以简单地创建一个Dockerfile 来从budtmo/docker-android-x86-8.1 基础镜像构建您自己的镜像并部署它。在Dockerfile 中定义启动命令或入口点。

    更新

    我想我明白了,请纠正我,如果我错了:你想针对在 Kubernetes 中运行的 Android 模拟器运行你的 python 脚本。

    正如我所说,我对 Kubernetes 并不是很坚定,但你不能将 Android 模拟器作为一个 init 容器运行,而将 python 脚本本身运行在“主”容器中吗?

    如此处所述:https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

    【讨论】:

    • 当我创建 CMD 时,我的 python 正在运行,但模拟器没有运行
    • 好吧,我不确定我是否理解正确,因为我对 kubernetes 不是那么坚定,对你的设置也不是那么坚定。我是否理解正确:您必须确保首先运行一个 android 模拟器。在你的 python 脚本之前,但两者都在同一个 docker 容器中运行?
    • 完全正确,有可能吗?
    • 我不确定该怎么做,但这是可能的。我想你看看这里的描述。我认为这是一个很好的起点。 kubernetes.io/docs/concepts/workloads/pods/init-containers 基本上,我认为您需要检查一下模拟器是否正在运行。也许您使用的 docker 容器可以为您提供这些信息。否则,您将不得不编写自己的脚本来检查这一点,例如针对它发起一些请求,如果失败,则意味着容器尚未启动。
    猜你喜欢
    • 1970-01-01
    • 2018-05-16
    • 2018-05-20
    • 2021-12-13
    • 2022-07-31
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 2021-08-15
    相关资源
    最近更新 更多