You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service(Docker)中环境变量无法访问问题求助

在Azure Web Apps部署Drupal自定义镜像后无法读取环境变量

我通过Dockerfile构建自定义Docker镜像,在Azure Web Apps上部署Drupal应用,但容器启动后无法查看任何环境变量。

Dockerfile内容

FROM --platform=amd64 php:8.2-apache

RUN apt-get update && \
  apt-get install --yes --no-install-recommends \
  curl \
  git \
  zip \
  unzip \
  libzip-dev \
  libpq-dev \
  openssh-server \
  cifs-utils \
  lsb-release \
  gpg \
  mariadb-client \
  nano

# add root to www-data group
RUN usermod -u 1000 www-data

# SSH config for Azure
RUN rm /etc/ssh/sshd_config
COPY conf_sshd-azure.conf /etc/ssh/sshd_config
RUN echo "root:Docker!" | chpasswd 

# install php extensions
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && \
  install-php-extensions \
  opcache \
  zip \
  redis \
  pdo_mysql \
  gd \
  mysqli \
  uploadprogress

# enable apache modules
RUN a2enmod \
  rewrite \
  cache \
  expires \
  headers \
  cache_disk

COPY conf_php-opcache-prod.ini $PHP_INI_DIR/conf.d/opcache.ini
COPY conf_php.ini $PHP_INI_DIR/conf.d/php.ini

COPY conf_apache-prd.conf /etc/apache2/sites-enabled/000-default.conf

# copy source to the images
COPY ./html /var/www/html
RUN chown -R www-data:www-data /var/www/html

# provide some nice shortcut
RUN ln -s /var/www/html/vendor/bin/drush /usr/sbin/drush
RUN alias logs_error="tail -f /var/log/apache_error.log"
RUN alias logs_acces="tail -f /var/log/apache_access.log"

# make some fix on the drupal
RUN chmod 644 /var/www/html/web/sites/default/settings*
#RUN composer clearcache

# move to project folder on ssh login
RUN echo 'cd /var/www/html' >>/root/.bash_profile
WORKDIR /var/www/html
EXPOSE 2222 80

# this is a test
ENV DB_database         ='blabal'
ENV DB_username         ='blabal'
ENV DB_password         ='blabal'
ENV DB_host             ='blabal'
ENV SETTINGS_hash_salt  ='blabal'

# start ssh and apache service
COPY entrypoint_apachephp.sh /entrypoint.sh
ENTRYPOINT ["bash", "/entrypoint.sh"]

部署流程

将镜像构建后上传至Azure容器注册表,通过部署中心在App Service中使用该镜像:
部署中心配置

启动日志显示环境变量已传入

从日志中可以看到启动容器时已传入环境变量:

2023-08-09T19:36:23.773Z INFO - Pull Image successful, Time taken: 0 Minutes and 0 Seconds
2023-08-09T19:36:23.826Z INFO - Starting container for site
2023-08-09T19:36:23.827Z INFO - docker run -d --expose=80 --name project-dev_7_1fdb9d01 -e WEBSITE_SITE_NAME=project-dev -e WEBSITE_AUTH_ENABLED=False -e PORT=80 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=project-dev.azurewebsites.net -e WEBSITE_INSTANCE_ID=xxxxxxxxxxxx -e WEBSITE_USE_DIAGNOSTIC_SERVER=False project.azurecr.io/fondation:1.1 --env DB_database=kiwi2
...
2023-08-09T19:36:30.871Z INFO - Container project-dev_7_1fdb9d01 for site project-dev initialized successfully and is ready to serve requests.

问题现象

执行printenv命令时,无法看到任何环境变量,包括启动时设置的WEBSITE_AUTH_ENABLED等变量。

已尝试的操作

  • 已知启动文件或命令存在问题,此为一次失败测试
  • 已尝试禁用「启用持久存储」,但未解决问题:
    禁用持久存储配置
  • 容器内无法访问任何应用设置中的变量:
    应用设置中的环境变量

内容的提问来源于stack exchange,提问作者Simon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:07:19