Tôi đã dockerized một ứng dụng có ffmpeg được cài đặt trong nó thông qua các công cụ libav.Ứng dụng khởi chạy mà không có vấn đề, nhưng vấn đề xảy ra khi mô-đun fluent-ffmpeg npm cố gắng thực thi lệnh ffmpeg, không tìm thấy khi tôi muốn kiểm tra phiên bản của ffmpeg và bản phân phối linux được thiết lập trong hình ảnh, tôi đã sử dụng lệnh sudo docker exec -it c44f29d30753 "lsb_release -a"
, nhưng nó đã đưa ra lỗi sau : OCI runtime exec failed: exec failed: container_linux.go:296: starting container process caused "exec: \"lsb_release -a\": executable file not found in $PATH": unknown
Sau đó, tôi nhận ra rằng nó mang lại cho tôi những lỗi tương tự với tất cả các lệnh mà chúng tôi cố gắng chạy bên trong hình ảnh hoặc container
OCI runtime exec failed: exec failed: container_linux.go:296: starting container process caused "exec: \"ffmpeg -a\": executable file not found in $PATH": unknown
.
Đây là Dockerfile của tôi:
FROM ubuntu:xenial
FROM node
RUN apt-get -y update
RUN apt-get --yes install libav-tools
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
RUN npm run build
ENV NODE_ENV production
EXPOSE 8000
CMD ["npm", "run", "start:prod"]
Tôi rất mong nhận được sự giúp đỡ của bạn. Cảm ơn nhiều!
thử nhập vùng chứa của bạn bằng 'docker run --rm -ti your-image-name sh' và tìm tệp thực thi của bạn. Nó có lẽ chỉ là một vấn đề PATH (thư mục nơi thực thi của bạn được đặt trong không phải là PATH của trình gỡ lỗi gốc bên trong vùng chứa) – whites11
Tôi đã nhập vùng chứa với lệnh mà bạn đã đề xuất. Vấn đề là khi tôi cố gắng làm 'apt-get install ffmpeg', kết quả là:' Gói ffmpeg không có sẵn, nhưng được nhắc đến bởi một gói khác. Điều này có nghĩa là gói bị thiếu, đã lỗi thời hoặc chỉ khả dụng từ một nguồn khác E: Gói 'ffmpeg' không có ứng cử viên cài đặt'. Tuy nhiên tôi có thể nhận được cùng một gói trong hệ điều hành ubuntu 16.04 của tôi. Có thể đã xảy ra sự cố với hệ điều hành trong vùng chứa? –
bạn có chạy 'apt-get update' không? – whites11