gpt4 book ai didi

bash -/bin/sh:在Docker容器内找不到my_custom命令

转载 作者:行者123 更新时间:2023-12-02 18:38:27 26 4
gpt4 key购买 nike

上下文如下:我需要在使用Docker部署和构建的AWS Lambda服务中运行ffmpeg。由于我们使用的docker镜像不是debian且不包含ffmpeg,因此我使用命令创建了一个二进制文件并将其添加到项目文件中。然后,在Dockerfile中,我创建了到这些二进制文件的链接,因此该命令包含在/ bin中。

这是Dockerfile:

FROM lambci/lambda:build-nodejs6.10


# Create app directory
WORKDIR /app

# Install app dependencies
COPY package.json .
COPY yarn.lock .

#add ffmpeg files
COPY binaries .binaries

#make link to ffmpeg
RUN ln -s /app/.binaries/bin/ffmpeg /bin/ffmpeg

RUN npm install --global yarn
RUN yarn install
RUN yarn global add serverless@~1.24.1

# Bundle app source
COPY . .

EXPOSE 8080
CMD [ "yarn", "run", "deploy" ]

尽管这似乎在本地环境中起作用(命令在docker镜像中从控制台调用时会响应),但在部署到暂存区时它无效:
/bin/sh: ffmpeg: command not found

最佳答案

我建议替换CMD [ "yarn", "run", "deploy" ]

ENTRYPOINT ["sh", "/app/.binaries/yarn"]
CMD ["run", "deploy"]

我认为您有2个问题:
  • 您知道yarn是可执行的吗?我不知道这不是问题,但是显式调用sh意味着这无关紧要。
  • 我认为yarn不在路径中。显式使用yarn的绝对路径意味着应该没有关系。
  • 关于bash -/bin/sh:在Docker容器内找不到my_custom命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50678649/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com