【问题标题】:How to migrate docker file to okd/openshift template?如何将 docker 文件迁移到 okd/openshift 模板?
【发布时间】:2020-02-10 19:53:25
【问题描述】:

我有以下工作 dockerfile,

#using python3.6 image
FROM python:3.6
ENV PYTHONUNBUFFERED 1

#Installing required packages 
RUN apt-get update
RUN apt-get install libsasl2-dev libldap2-dev libssl-dev python3-dev psmisc -y

#Installing a pip package which has django project in-built
RUN pip install <pip-package>

#Running a script-> appmanage.py, which installs a app to django project
RUN appmanage.py appconfig 

#Running the django development server.
CMD ["manage.py","runserver","0.0.0.0:8000"]

我如何为此设计一个 okd/openshift 模板 yaml/json?我更喜欢 docker image-build 将在模板本身中处理的模板,而不是使用 docker build 构建图像并在模板中使用带有标签的图像名称。

【问题讨论】:

    标签: openshift openshift-origin openshift-3 openshift-enterprise okd


    【解决方案1】:

    将 BuldConfig 导出为模板:

    1. 使用来自 repo 的 Dockerfile 创建 BuildConfig:

      oc new-build --name python-app --strategy=docker https://somegitrepo/python-app
      
    2. 或使用内联 Dockerfile:

      cat Dockerfile | oc new-build --name python-app --dockerfile=-
      
    3. 将 BuildConfig 导出为模板:

      oc export bc python-app --as-template=python-app-template
      

    然后你可以从创建的镜像流中创建 DeploymentConfig 并导出 dc/is。

    【讨论】:

    • 我试过oc new-build --name python-app --strategy=docker https://somegitrepo/python-app,构建失败并出现错误/bin/sh: apt-get: command not found
    • 你必须检查你的基础镜像 (python:3.6),它没有 apt-get。首先通过“docker build”稳定你的 Dockerfile。然后在 openshift 中部署。
    • 是的,正如您所建议的那样,使用 docker.io/python:3.6 工作正常。所以在构建配置之后,现在如果我想模板化部署配置,我需要手动编写它还是有任何命令可以生成部署配置?
    • "oc new-app python-app",其中 'python-app' 是您的构建名称,因此至少会创建部署(带有图像更改触发器,因此在重建后部署将自动重新运行)。此外,您可以通过一个命令生成构建和部署:oc new-app --name python-app --strategy=docker somegitrepo/python-app
    • 感谢您的帮助,您能否在答案中添加有关 okd-3.11 的文档或博客参考链接,以便大家更好地理解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    相关资源
    最近更新 更多