当前位置: 首页 > 知识库问答 >
问题:

如何在使用LXD容器时自动化应用程序部署?

宗穆冉
2023-03-14

在LXD容器中,应用程序应该如何编写脚本/自动部署?

例如,在LXD容器中部署应用程序的最佳方法是使用bash脚本(它部署应用程序)?如何通过在主机上执行命令在容器内执行此bash脚本?

有没有任何工具/方法可以以类似于Docker食谱的方式做到这一点?

共有2个答案

伯茂才
2023-03-14

看看我的开源项目在bit桶devops_lxd_containers它包括:

  • 用于构建lxd图像模板的脚本,包括Apache、tomcat、haproxy

整个系统是建立在这样一个前提之上的,即图像构建最好是分层完成的。我们构建了一个更新的Ubuntu映像。从中我们构建了一个加固的Ubuntu映像。从中我们构建了一个基本的Apache映像。从中,我们构建了一个特定于应用程序的映像,就像我们的apacheKV示例一样。我们的目标是永远不要重建超过一次,并将basicJDK等常用功能重新用作所有依赖JDK的映像的源代码,这样我们就可以避免在任何位置出现重复代码。我一直努力使映像或模板的创建与部署和端口映射完全分离。例外的是,我无法完成第7层路由图像的创建,直到我们知道关于其他图像如何映射的一切。

於英朗
2023-03-14

在我的例子中,我使用Anble来:

  1. 构建LXD容器(例如web、数据库、redis)
  2. 连接到容器并部署所需的服务和代码

您可以构建自己的映像,例如使用已经部署的服务和/或代码,并从这些映像构建特定的容器。

在LXD拥有Ansible支持(Ansible 2.2)之前,我就这样做了。当我连接到容器以部署服务/代码时,我更喜欢使用ssh而不是LXD连接。它们附带了一个配置文件,我在其中设置了ssh公钥(通过密钥进行直接ssh连接…没有密码)

 类似资料:
  • 我有一个Java应用程序(打包成一个JAR ),它通过websockets与一个聊天程序(Slack)交互。据我所知,我的应用程序不需要绑定到特定的端口才能工作——它只是连接到Slack的实时消息API。它不是作为一个网络应用或网络服务器。它不会在任何端口上侦听传入的请求,因为它不需要这样做。我希望有人能够点击我的应用程序的“部署到Heroku”按钮,我希望Java应用程序在应用程序部署后立即运行

  • 我在Cucumber自动化框架中使用Ruby来自动化我的Android和iOS应用程序。我正在使用Appium 1.6.4测试版,因为它支持iOS 10.2。 当Appium服务器首次在设备上安装iOS应用程序时,会出现一个警报对话框,询问是否允许通知。据我所知,使用Appium时,“自动接受器”功能目前不起作用。 我的主要问题是如何检查警报对话框是否存在,然后使用类似“查找元素”的功能按下“允许

  • 我正在寻找支持自动化Windows应用程序,如记事本使用Qmetum自动化框架与BDD步骤。我尝试与Appium驱动程序,但没有工作。 Step1:打开记事本Step2:输入“一些文本”[在这里输入链接描述][1] 成功日志:Windows应用程序驱动程序在以下位置侦听请求:http://127.0.0.1:4723/ 按ENTER键退出。 ============================

  • webview加载URL时,应用程序从最小化状态自动打开。对此如何化解? 下面是我的代码;

  • 我一直在努力从本地主机和外部连接到postgresql容器。 这是一个非常好的演示,它在https://linuxhint.com/postgresql_docker/.下面是docker compose。yml,postgres:12.2和pgadmin通过它进行集装箱化和运行。事实上,在运行docker compose之后。yml文件(由docker compose up-d编写)它们可以工作

  • 我试图用一个反应项目启动一个Docker容器,该项目是使用npm init反应应用程序创建的。 这是我的Docker档案