簡體   English   中英

Azure 應用服務環境變量在容器中不可用

[英]Azure App Service environment variables are not available in container

我有一個 Docker 容器在 Azure 應用服務中運行。 在我的 Azure App Service on Configuration 部分中,我有一個用於數據庫連接的已定義變量列表。 我想在 wp-config.php 文件中的 docker 容器中使用它們來連接到 Azure Z632AZ504B9591DCCA76 數據庫。 但是,這些變量在容器中根本不可用。

在我的啟動腳本中添加以下行后,我嘗試使用“env”或“printenv”命令查看它們:

eval $(printenv | sed -n "s/^\([^=]\+\)=\(.*\)$/export \1=\2/p" | sed 's/"/\\\"/g' | sed '/=/s//="/' | sed 's/$/"/' >> /etc/profile)

沒有成功,很遺憾。 我也試過通過 PHP 和 getenv('variable_name') function 來獲取它們,也沒有成功。 我的所有環境變量都在 Kudu 容器中可用,該容器與在應用服務中運行我的應用程序的實際容器一起創建,但是,我根本無法在我的應用程序容器中使用它們。 容器本身是 Apache + WordPress 圖像,我附上了我的 Dockerfile 和下面的啟動腳本:

Dockerfile:

FROM wordpress:4.9.1-apache
RUN apt-get update
RUN apt-get -y install openssh-server \
    && echo "root:Docker!" | chpasswd

COPY sshd_config /etc/ssh/
RUN mkdir -p /tmp
COPY ssh_setup.sh /tmp
RUN chmod +x /tmp/ssh_setup.sh \
    && (sleep 1;/tmp/ssh_setup.sh 2>&1 > /dev/null)

COPY . /var/www/html

RUN chown -R www-data:www-data /var/www/html/

ENV PORT 80
EXPOSE 80 2222

ADD start.sh /
RUN chmod +x /start.sh
ENTRYPOINT ["/start.sh"]

開始.sh:

#!/bin/bash
/usr/sbin/sshd
apache2-foreground
eval $(printenv | sed -n "s/^\([^=]\+\)=\(.*\)$/export \1=\2/p" | sed 's/"/\\\"/g' | sed '/=/s//="/' | sed 's/$/"/' >> /etc/profile)

UPD:問題是由於啟用持久存儲的應用程序設置造成的。 一旦我將值從“真”更改為“假”,出於某種原因,應用程序設置開始作為環境變量工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM