如何在多容器Web应用程序上装载Azure文件?

时间:2019-11-17 19:15:06

标签: azure docker docker-compose azure-web-sites azure-web-app-service

B“ H

我想使用Azure Web应用程序来托管用于wordpress的登台服务器。 确保分期尽可能近的最佳方法似乎是码头工人。

我在开发机上使用docker-compose,它的运行效果很好。我想在天蓝色上复制该设置。

我的docker-compose.yml文件设置了三个容器1)mysql 2)phpMyAdmin 3)my-wordpress-container

我装载了三卷

      - ./data/mysql:/var/lib/mysql
      - ./data/init/:/docker-entrypoint-initdb.d

在db容器和

      - ./site/wp-content/uploads:/var/www/html/wp-content/uploads

在wordpress容器中。

最重要的是/docker-entrypoint-initdb.d文件,用于使用测试数据引导数据库。

我将如何在Azure Web应用程序中实现这一目标?


在回答之前...请不要解释如何使用docker-compose在App服务上部署多个容器。或发布指向在该环境中托管Wordpress的教​​程的链接。这既简单又不够有用。

此外,请不要发布有关在Web应用程序中挂载文件共享的链接。这也很简单。

问题是如何将文件共享安装到多容器设置中。具体来说,我可能如何能够安装/docker-entrypoint-initdb.d来使用测试数据来引导数据库。

这在容器实例中完全可行。但是,还有其他功能使其无法用于此解决方案。

3 个答案:

答案 0 :(得分:1)

我认为您正在寻找本文档: https://docs.microsoft.com/en-us/azure/app-service/containers/how-to-serve-content-from-azure-storage#use-custom-storage-in-docker-compose

从文档中

  

Azure Storage可以使用定制ID与多容器应用程序一起挂载。要查看自定义ID名称,请运行az webapp config storage-account list --name <app_name> --resource-group <resource_group>

     

在您的docker-compose.yml文件中,将volumes选项映射到custom-id。例如:

wordpress:
  image: wordpress:latest
  volumes:
  - <custom-id>:<path_in_container>

答案 1 :(得分:0)

有一种方法可以从Azure Web应用程序挂载磁盘,只需使用Google“从Azure Web应用程序挂载磁盘”即可。 TOM KERKHOVE有一篇不错的博客文章。

但是,我不建议您这样做,目前Azure存储REST API似乎更稳定https://docs.microsoft.com/en-us/rest/api/storageservices/

答案 2 :(得分:-1)

Azure Web-Apps现在可以预览多个容器。 Web-Apps确实将MySql作为实例的一部分提供。但不建议在要扩展Web应用程序时使用。因此,最好将MySQL作为服务托管在MySQL中。

如果转到下面的链接,它将引导您如何在具有多个容器的Azure Web-App中托管Wordpress和Redis。使用My-SQL Service进行数据库和持久性存储。

https://docs.microsoft.com/en-gb/azure/app-service/containers/tutorial-multi-container-app

如果您仍然想在docker中运行MySQL,则可以考虑使用Azure Kubernetes Service托管所有容器。

我希望这会有所帮助。