簡體   English   中英

/ bin / sh:在Docker容器內找不到my_custom命令

[英]/bin/sh: my_custom command not found inside Docker container

上下文如下:我需要在使用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個問題:

  1. 你知道yarn是可執行的嗎? 我不知道不是,但是顯式調用sh表示沒關系。
  2. 我不認為yarn在路上。 顯式使用yarn的絕對路徑意味着這無關緊要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM