我想在 Azure Webapps 中运行一个 PHP 应用程序。为此,我想使用自己的 Container,因为当前默认值存在一些问题。
代码或 Dockerfile 是否在某个地方公开,因此可以将其用作基础?
编辑:我也想提交一个潜在的错误,但我也找不到问题跟踪器。
我想在 Azure Webapps 中运行一个 PHP 应用程序。为此,我想使用自己的 Container,因为当前默认值存在一些问题。
代码或 Dockerfile 是否在某个地方公开,因此可以将其用作基础?
编辑:我也想提交一个潜在的错误,但我也找不到问题跟踪器。
正如 Jason 正确指出的那样,添加有关此主题的更多信息以提高清晰度:
在 Azure App 服务中,您可以拥有不同风格/版本的 WebApp,如下所示:
1.代码 + Windows – 您选择应用程序堆栈并部署您的代码。
2. Code + Linux (WebApp Linux) - Linux 上的 App Service 在 Linux 上提供预定义的应用程序堆栈,支持 .NET、PHP、Node.js 等语言。这些是由平台预定义的祝福图像。在这里,您只需部署您的代码。
Docker Container + Linux(WebApp for Container) ——自定义镜像(代码已经是镜像的一部分,没有单独部署)——容器镜像在运行时成为容器。
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
虽然@AjayKumar-MSFT 的回答与问题完美匹配,但我赞成并接受,但还想分享一些我发现的信息。
我开始根据 webdevops 的工作构建自己的容器。我发现它是一个非常好的基础映像,因为它具有预先配置的系统日志和主管等重要内容,并且易于扩展。它可以在php docker repo或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
码头工人/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