美文网首页
docker node 环境获取视频时长异常

docker node 环境获取视频时长异常

作者: 鹤空 | 来源:发表于2022-04-22 11:10 被阅读0次

    异常

    docker ffmpeg failed to resolve hostname system error
    在mac下执行正常,放到docker中异常

    具体原因

    https://superuser.com/questions/1141609/android-tcp-error-failed-to-resolve-host-name-from-static-library

    imitation of statically linking glibc is the loss of DNS resolution. Installing
                 nscd through your package manager will fix this or you can use
                 "ffmpeg -i http://<ip address here>/" instead of "ffmpeg -i http://example.com/"
    

    https://github.com/SavageCore/node-ffprobe-installer/issues/66
    https://github.com/joshwnj/ffprobe-static/issues/13

    解决方式

    1. 不使用host, 使用IP
    2. 使用docker node官方 slim版本
    - FROM node:lts-alpine
    + FROM node:lts-slim
    ENV NODE_ENV=production
    WORKDIR /usr/src/app
    COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
    RUN npm install --production --silent && mv node_modules ../
    COPY . .
    EXPOSE 3002
    RUN chown -R node /usr/src/app
    USER node
    ENV JOBS=""
    CMD ["npm", "start", "--", "-j", "${JOBS}"]
    

    扩展

    关于node版本选择
    先来看看node官方的docker镜像有哪些版本。
    node:<version> 基于Debian,官方默认镜像。
    当你不确定你需要什么的时候选择这个就对了。这个被设计成可以丢弃的镜像,也就是可以用作构建源码使用。体积挺大。
    node:<version>-slim 基于Debian, 删除了很多默认公共的软件包,只有node运行的最小环境。除非你有空间限制,否则推荐使用默认镜像。
    node:<version>-alpine 基于alpine, 比Debian小的多。如果想要最小的镜像,可以选择这个做为base。需要注意的是,alpine使用musl代替glibc。一些c环境的软件可能不兼容。但大部分没问题。

    相关文章

      网友评论

          本文标题:docker node 环境获取视频时长异常

          本文链接:https://www.haomeiwen.com/subject/qvagertx.html