Azure Linux App Service:exec用户进程导致“没有这样的文件或目录”

时间:2017-02-15 16:36:16

标签: azure-web-sites

我有以下Dockerfile:

FROM ruby:2.3.3
ENV "GEM_HOME" "/home/gems"
ENV "BUNDLE_PATH" "/home/gems"
EXPOSE 3000
WORKDIR /home/webapp
CMD ["/home/webapp/startup.sh"]

startup.sh文件如下所示:

#!/bin/sh
bundle install
bundle exec rails server puma -b 0.0.0.0 -e production

使用这个Dockerfile,我在Docker Hub上构建了一个图像。 我在Azure Linux应用服务网站Docker容器设置中选择此图像。这里没问题。

通过FTP我在Linux App Service的/文件夹中上传我的Rails应用程序(位于文件夹webapp,此文件夹包含startup.sh文件)。 根据此页面上的评论:https://docs.microsoft.com/en-us/azure/app-service-web/app-service-linux-how-to-create-a-web-app应用服务的/映射到容器中的/ home。

但是,如果我通过浏览器访问它,我的webapp将不会显示。在

/LogFiles/docker/docker_***_err.log

它说:

standard_init_linux.go:178: exec user process caused "no such file or directory"

我想要实现的是我的应用数据和宝石在容器图像之外。 我用我的本地mac成功测试了图像:

docker run -it -p 8888:3000 -v /Users/***/Desktop/ms:/home xyz/rubyimage

ms文件夹包含文件夹webapp。

2 个答案:

答案 0 :(得分:2)

我的猜测是start.sh中的#!/ bin / sh会导致麻烦。尝试将#!/ bin / bash放在那里。

来源: https://forums.docker.com/t/getting-panic-spanic-standard-init-linux-go-178-exec-user-process-caused-no-such-file-or-directory-red-while-running-the-docker-image/27318/4

答案 1 :(得分:0)

我在Windows计算机上遇到了这个问题,这是因为我的“ entrypoint.sh”文件中第一行的行尾是

#!/bin/bash

我使用的是Visual Studio代码,并通过将以“ CRLF”结尾的行更改为“ LF”来解决此问题:

Visual Studio Code: How to show line endings