我怎样才能进入Linux上的Web应用程序" Azure上的docker容器?

时间:2017-03-09 20:17:59

标签: linux azure docker azure-web-app-service

如何使用新的" Web App On Linux" ssh进入容器?服务?

它目前处于预览模式,我不确定它是否可能还是我已经监督了设置。

6 个答案:

答案 0 :(得分:4)

以下是我在Linux容器中与ssh以及asp.net核心应用一起工作的示例:

Dockerfile

#base image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base

#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 MyApp/sshd_config /etc/ssh/
COPY MyApp/init.sh /usr/local/bin/

WORKDIR /app
EXPOSE 80 443 2222

FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["MyApp/MyApp.csproj", "MyApp/"]
RUN dotnet restore "MyApp/MyApp.csproj"
COPY . .
WORKDIR "/src/MyApp"
RUN dotnet build "MyApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MyApp.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
    
ENTRYPOINT ["bash","init.sh"]
.net核心项目的根文件夹中的

init.sh

service ssh start
dotnet MyApp.dll
.p核心项目的根文件夹中的

sshd_config

#
# /etc/ssh/sshd_config
#

Port            2222
ListenAddress       0.0.0.0
LoginGraceTime      180
X11Forwarding       yes
Ciphers                 aes128-cbc,3des-cbc,aes256-cbc
MACs                    hmac-sha1,hmac-sha1-96
StrictModes         yes
SyslogFacility      DAEMON
PrintMotd       no
IgnoreRhosts        no
#deprecated option 
#RhostsAuthentication   no
RhostsRSAAuthentication yes
RSAAuthentication   no 
PasswordAuthentication  yes
PermitEmptyPasswords    no
PermitRootLogin     yes

enter image description here

答案 1 :(得分:3)

目前,这是不可能的。请参阅此feedback

2017-6-8更新

现在,可以参考SSH support for Azure Web App on Linux

答案 2 :(得分:2)

对于@@ sgedda遇到@ Manish Jain答案的任何人,请尝试使用:

ENTRYPOINT ["bash", "init.sh"]

对我有用。

答案 3 :(得分:1)

我不相信你可以。但是根据你想要做的事情(例如查看日志文件),你可以使用Kudu的bash(通过高级工具>调试控制台> Bash)

也就是说,Linux上的Web App正在预览中 - 所以将来可能会有SSH!

答案 4 :(得分:1)

我发现@Sgedda的回复非常有帮助。我按照他的榜样来信,但我不断收到此错误exec user process caused "exec format error"

除了实现他的示例外,我还执行了以下操作

  1. 添加了#!/bin/bash作为 init.sh 文件的第一行。重要的是,在该行的前面或该行的末尾都没有任何内容,并且它是文件中的第一行。 service ssh start是第2行。
  2. 使用VS Code enter image description here
  3. init.sh sshd_config 文件的编码更改为ISO 8859-15
  4. 使用VS Code将 init.sh sshd_config 文件的行尾更改为LF enter image description here

答案 5 :(得分:0)

根据今天的文档,Connect to Web App for Containers using截至今天(2019年4月1日)。这是一种骇客,但可以解决问题。

不是愚人节的玩笑。