0

我想在 Azure Webapps 中运行一个 PHP 应用程序。为此,我想使用自己的 Container,因为当前默认值存在一些问题。

代码或 Dockerfile 是否在某个地方公开,因此可以将其用作基础?

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

4

2 回答 2

2

正如 Jason 正确指出的那样,添加有关此主题的更多信息以提高清晰度:

在 Azure App 服务中,您可以拥有不同风格/版本的 WebApp,如下所示:

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

2. Code + Linux (WebApp Linux) - Linux 上的 App Service 在 Linux 上提供预定义的应用程序堆栈,支持 .NET、PHP、Node.js 等语言。这些是由平台预定义的祝福图像。在这里,您只需部署您的代码。

  1. Docker Container + Linux(WebApp for Container) ——自定义镜像(代码已经是镜像的一部分,没有单独部署)——容器镜像在运行时成为容器。

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

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

az webapp config container set 您可以运行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 =容器-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

是的,这是跟踪您对 repo 的反馈/建议的好地方: https ://github.com/Azure/app-service-quickstart-docker-images/issues

于 2020-12-30T11:39:48.317 回答
0

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

我开始根据 webdevops 的工作构建自己的容器。我发现它是一个非常好的基础映像,因为它具有预先配置的系统日志和主管等重要内容,并且易于扩展。它可以在php docker repodockerhub上找到。我使用(并链接)了 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

码头工人/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

码头工人/ssh.conf:

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

接下来,我将代码放入/app

当起点在其他地方时,就像在某些框架中一样,您可以覆盖一个 env var,例如:

ENV WEB_DOCUMENT_ROOT=/app/public
于 2021-01-04T13:35:23.837 回答