[英]/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個問題:
yarn
是可執行的嗎? 我不知道不是,但是顯式調用sh
表示沒關系。 yarn
在路上。 顯式使用yarn
的絕對路徑意味着這無關緊要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.