Azure Webapps public 的默认图像是什么?

Is the default image for Azure Webapps public?

我想要 运行 Azure Webapps 中的 PHP 应用程序。为此我想使用我自己的容器,因为我对当前的默认设置有一些问题。

代码或 Dockerfile 是否在某处 public,以便可以将其用作基础?

编辑:我也想提交一个潜在的错误,但我也找不到问题跟踪器。

正如 Jason 正确指出的那样,添加一些关于此主题的更多信息以更加清晰:

在Azure App服务中,可以有不同flavor/version的WebApp,如下:

1.代码 + Windows – 您 select 应用程序堆栈并部署您的代码。

2.代码 + Linux (WebApp Linux) - Linux 上的应用程序服务在 [=] 上提供预定义的应用程序堆栈84=],支持 .NET、PHP、Node.js 等语言。这些是受祝福的图像,由平台预定义。您只需在此处部署您的代码。

  1. Docker Container + Linux (WebApp for Container) – 自定义图像(代码已经是图像的一部分,而不是单独部署)- 容器映像在 运行 时间成为容器。

  2. Docker Container + Windows (WebApp for Windows Container) – 自定义镜像 – 容器镜像成为容器在 运行 时间。

是的,您还可以在尚未在 Azure 中定义的应用程序堆栈上使用 自定义 Docker 图像 来 运行 您的 Web 应用程序。 Azure 应用服务在 Windows 上提供预定义的应用程序堆栈,例如在 IIS 上 ASP.NET 或 Node.js、运行ning。

az webapp 配置容器集 您可以 运行 az webapp list-runtimes --linux 查看最新的语言和支持的版本。如果 运行您的应用程序所需的时间在内置映像中不受支持,您可以使用自定义容器进行部署。

请查看这些文档以了解更多详细信息。

https://docs.microsoft.com/azure/app-service/quickstart-custom-container?pivots=container-windows https://docs.microsoft.com/azure/app-service/quickstart-custom-container?pivots=container-linux

所有应用服务基础镜像都可以在这里找到:

https://github.com/Azure-App-Service/php(你的情况)

-同样你可以找到其他语言-

https://github.com/Azure-App-Service/python

https://github.com/Azure-App-Service/ruby

https://github.com/Azure-App-Service

如果 WebApp 祝福图像有任何变化,您通常可以在此存储库中看到该变化:https://github.com/Azure/app-service-quickstart-docker-images

是的,这是跟踪回购 feedback/suggestions 的好地方: https://github.com/Azure/app-service-quickstart-docker-images/issues

@AjayKumar-MSFT 的回答与问题完美匹配,我投了赞成票并接受了,但我想分享一些我另外发现的信息。

我开始基于 webdevops 的工作构建自己的容器。我发现它是一个非常好的基础镜像,因为它有一些重要的东西,比如系统日志和 supervisor 预配置,并且很容易扩展。它可以在 php docker repo or on dockerhub 中找到。我使用(并链接)了 apache 变体,但我正在考虑切换到 nginx。文档很准确,但对于像我这样的新手来说相对薄弱,但它确实很好用。

拥有 webssh 的人需要在具有静态凭据的端口 2222 上启用 ssh root:Docker!。我将此块添加到派生的 Dockerfile 以使用 supervisord 启动 ssh:

 # Enable ssh
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
COPY docker/sshd_config /etc/ssh/
COPY docker/ssh.conf /opt/docker/etc/supervisor.d/
RUN mkdir -p /var/run/sshd

docker/sshd_config:


Port            2222
ListenAddress       0.0.0.0
LoginGraceTime      180
X11Forwarding       yes
Ciphers aes128-cbc,3des-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr
MACs                    hmac-sha1,hmac-sha1-96
StrictModes         yes
SyslogFacility      DAEMON
PasswordAuthentication  yes
PermitEmptyPasswords    no
PermitRootLogin     yes

docker/ssh.conf:

[program:sshd]
command=/usr/sbin/sshd -D

接下来,我把我的代码放到 /app .

当起点在其他地方时,就像某些框架一样,您可以覆盖环境变量,例如:

ENV WEB_DOCUMENT_ROOT=/app/public