docker - 在运行自定义 Linux 容器的 Azure 应用服务中与 Azure 存储帐户(AzureFiles NOT AzureBlob)同步的文件会提供 502 错误网关
问题描述
语境
每次容器启动时,我都使用 Azure 文件共享在应用服务中同步我的媒体文件。我使用文件共享而不是 Blob 存储的原因是因为 Azure 没有为 Blob 存储功能提供写访问权限(只有读访问权限),更多信息请点击此处。此外,文件同步与文件共享存储一起工作正常,即我可以在容器安装路径中看到上传到 Azure 文件共享的文件,即:容器运行/var/www/html/<app-name>/web/sites/default/files
的Drupal 9.2.4应用程序也可以写入相同的挂载路径,我也可以在文件共享上看到新创建的文件。
问题
问题是上述挂载路径中的所有图像/PDF 文件都在502 Bad Gateway
浏览器上显示,但是 Drupal 应用程序在同一挂载路径中加载的 CSS 文件工作正常。
链接到 Web 应用程序:rtstaged9.azurewebsites.net
该站点未使用 SSL。
我已经尝试过但不起作用的事情:
- 将文件共享层从“热”更改为“性能优化”。
- 扩大应用服务计划以使用 P1V3(8 GB 内存)的 P2V3(16 GB 内存)。
- 将容器中apache2的FQDN(Servername)设置为:rtstaged9.azurewebsites.net
- 应用服务中的日志流显示浏览器上显示
200 OK
的相同图像/PDF 。502 Bad Gateway
- 应用服务的
default_docker.log
下方/LogFiles/
还显示图像/PDF200 OK
。 - Drupal没有任何错误的
/admin/reports/dblog
迹象。502 Bad Gateway
- 尝试使用
drush cr
命令清除缓存。
此外,如果容器未连接到存储帐户,则上述挂载路径中的图像/PDF 工作正常,但文件当然不会以这种方式保存在容器中。
另外,以防万一下面是我用来构建 Drupal 容器并将其推送到Azure Container Registry
那里和从那里推送的 Dockerfile,我正在使用应用程序服务来使用图像,再加上一个 Azure MySQL 实例连接到同一个应用程序服务。如果您希望我提供更多信息,请告诉我,我们将不胜感激。
FROM osiolabs/drupaldevwithdocker-php:7.4
ENV APACHE_DOCROOT_DIR=/var/www/html/<app-name>/web/
#Set the Server name
ENV APACHE_SITE_NAME=rtastaged9.azurewebsites.net
#Set the Server alias
ENV APACHE_SITE_ALIAS=rtastaged9.azurewebsites.net
COPY /<app-name> /var/www/html/<app-name>
RUN composer self-update --2
WORKDIR /var/www/html/RTA-D8
RUN composer install
WORKDIR ../../../../
# ssh for azure app service
ENV SSH_PASSWD "root:Docker!"
RUN apt-get update \
&& apt-get install -y --no-install-recommends dialog \
&& apt-get update \
&& apt-get install -y --no-install-recommends openssh-server \
&& echo "$SSH_PASSWD" | chpasswd
RUN mkdir /run/sshd
COPY sshd_config /etc/ssh/
EXPOSE 80 443 2222
CMD /usr/sbin/sshd && apachectl -D FOREGROUND
解决方案
推荐阅读
- vba - 使用VBA,最后如何删除额外的重复字符
- javascript - 对话流中的请求和cheerio问题
- schema.org - 用于描述每周瑜伽课程的最佳 schema.org 类型是什么?
- reactjs - Create-react-app 渲染 SVG 但不是 PNG
- azure-active-directory - 创建 Azure AD 域
- openlayers-3 - 跟踪地理服务器图层中要素数据的创建和更新
- java - 我想在 Java 中将 long int 值转换为 HH:MM 格式
- android - 多次使用 Glide 将图像作为位图加载到 imageview 中
- android - 在 XML 布局中找不到 DatePicker
- java - recyclerview 在滚动时返回相同的位置