我正在尝试在Linux Docker容器中的Azure上运行ghost泊坞窗映像。这非常容易启动并运行using a custom Docker image for Azure Web App on Linux并将其指向官方码头中心图像以获取幽灵。
不幸的是official docker image存储了/ var / lib / ghost路径上的所有数据,这些数据在重新启动时没有持久存在,因此每当重新启动容器时,我的所有内容都会被删除,最后我会返回默认的ghost安装。
Azure不会让我执行任意命令,你基本上将它指向一个泊坞窗图像并从那里触发,所以我不能使用-v命令行参数来映射一个卷。 Docker镜像确实配置了一个入口点,如果有帮助的话。
任何建议都会很棒。谢谢!
答案 0 :(得分:1)
您必须使用将容器/var/lib/ghost
目录的内容映射到主机目录的共享卷。这样,您的数据将保留在主机目录中。
为此,请使用以下命令。
$ docker run -d --name some-ghost -p 3001:2368 -v /path/to/ghost/blog:/var/lib/ghost/content ghost:1-alpine
答案 1 :(得分:1)
我从未使用过Azure,因此我不能100%确定以下内容适用。但是如果你通过CLI连接docker很有可能适用它。
docker中的持久性由卷处理。它们基本上是在容器的文件系统树中安装到外部的目录中。从您的文字中我了解到,您希望在/var/lib/ghost path
内部存储内部/home/site/wwwroot
内容。要做到这一点,你可以这样调用docker:
$ docker run [...] -v /var/lib/ghost:/home/site/wwwroot ghost
答案 2 :(得分:1)
您有几个选择:
答案 3 :(得分:1)
不幸的是,Linux上的Azure Web Apps目前不支持将持久存储设置(或将您自己的存储设置)设置为特定路径。 这就是说,你可以使用ssh并尝试配置ghost指向/ home /而不是/ var / lib /。 我在这里准备了一个docker镜像:https://hub.docker.com/r/elnably/ghost-on-azure添加了docker文件的ssh功能,代码可以在这里找到:https://github.com/ahmedelnably/ghost-on-azure/tree/master/1/alpine。
通过配置您的网络应用程序以使用elnably / ghost-on-azure:最新,浏览到网站(启动容器)并转到ssh页面.scm.azurewebsites.net来试用它,以了解更多信息SSH检查此链接:https://aka.ms/linux-ssh。
答案 4 :(得分:1)
在应用程序设置中将WEBSITES_ENABLE_APP_SERVICE_STORAGE设置为true,主目录将从您的外部kudo实例映射:
https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-faq