Dawnnnnnn / bilibili-live-tools

python实现的bilibili直播助手
MIT License
796 stars 173 forks source link

0512:Docker中brotli不适配问题 #306

Closed CanvasQAQ closed 4 years ago

CanvasQAQ commented 4 years ago

错误位置

直观表现为运行时docker中没有gcc,一般docker也不会内置这个,可能是11,12号两天更新的新模块brotli调用了gcc进行编译,不适合docker使用,其他平台暂未测试

Billyzou0741326 commented 4 years ago

https://hub.docker.com/_/gcc

CanvasQAQ commented 4 years ago

https://hub.docker.com/_/gcc

额。docker中容器与容器是隔离的,你可以理解为沙盘,我安装一个gcc容器也没用啊,作者的zsnmwy/bilibili-live-tools这个容器内部没有gcc也是白搭的

colawithsauce commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc

如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

dfaofeng commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc

如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

加上gcc后还需要加上lib32stdc++6 不然报错

CanvasQAQ commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc

如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

感谢指点,我clone了一份源代码,然后直接更改了docker file,按照你更改的代码在apk add后面增加了一个gcc,然后在文件路径中运行了 docker build -t test/bilibili-live-tools . 最后一个点代表当前路径 然后就是长时间的等待。。。 Snipaste_2020-05-12_23-32-41 卡了两小时没动了,我关了明天挂梯子再试试

CanvasQAQ commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc 如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

加上gcc后还需要加上lib32stdc++6 不然报错

好的,我再改下试试

dfaofeng commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc 如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

加上gcc后还需要加上lib32stdc++6 不然报错

好的,我再改下试试 编译一个这个还需要2个小时????你那网络不行吧,我这3分钟就编译完成了..还有 我说的好像是错的,我还在找那个出错的解决办法....

CanvasQAQ commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc 如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

加上gcc后还需要加上lib32stdc++6 不然报错

好的,我再改下试试 编译一个这个还需要2个小时????你那网络不行吧,我这3分钟就编译完成了..还有 我说的好像是错的,我还在找那个出错的解决办法....

网络问题,路由器梯子挂上秒进,但也是报lib32stdc++6的错 我也查查啥问题

CanvasQAQ commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc 如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

加上gcc后还需要加上lib32stdc++6 不然报错

好的,我再改下试试 编译一个这个还需要2个小时????你那网络不行吧,我这3分钟就编译完成了..还有 我说的好像是错的,我还在找那个出错的解决办法.... 貌似只需要安装gcc,后面那个在其他的库有,我的容器已经开始安装python的库了

CanvasQAQ commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc 如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

加上gcc后还需要加上lib32stdc++6 不然报错

好的,我再改下试试 编译一个这个还需要2个小时????你那网络不行吧,我这3分钟就编译完成了..还有 我说的好像是错的,我还在找那个出错的解决办法....

Snipaste_2020-05-12_23-51-36 刚刚理解错了,我的镜像只用gcc是建立完成了,但是进了容器还是白给 容器内报错: Snipaste_2020-05-12_23-57-40

dfaofeng commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc 如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

加上gcc后还需要加上lib32stdc++6 不然报错

好的,我再改下试试 编译一个这个还需要2个小时????你那网络不行吧,我这3分钟就编译完成了..还有 我说的好像是错的,我还在找那个出错的解决办法....

Snipaste_2020-05-12_23-51-36 刚刚理解错了,我的镜像只用gcc是建立完成了,但是进了容器还是白给 容器内报错: Snipaste_2020-05-12_23-57-40

对啊 就是这个报错,肯定少依赖包....找了几个都没效果..

CanvasQAQ commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc 如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

加上gcc后还需要加上lib32stdc++6 不然报错

好的,我再改下试试 编译一个这个还需要2个小时????你那网络不行吧,我这3分钟就编译完成了..还有 我说的好像是错的,我还在找那个出错的解决办法....

Snipaste_2020-05-12_23-51-36 刚刚理解错了,我的镜像只用gcc是建立完成了,但是进了容器还是白给 容器内报错: Snipaste_2020-05-12_23-57-40

对啊 就是这个报错,肯定少依赖包....找了几个都没效果..

大兄弟!!!我搞好了!!!感谢最前面那位老大哥给的意见,原dockerfile 有一行 apk del bili,我本来以为无关紧要的,前面那位大哥删掉了这一行,我没删,然后现在我把这一行删了,也就是说docker中安装好的一些东西不会被del掉,然后现在能正常运行了。附上我现在的docker file:

FROM python:3.6-alpine

MAINTAINER zsnmwy <szlszl35622@gmail.com>

ENV LIBRARY_PATH=/lib:/usr/lib \
    USER_NAME='' \
    USER_PASSWORD=''

WORKDIR /app

RUN apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
    apk add --no-cache git && \
    git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
    pip install --no-cache-dir -r requirements.txt && \
    rm -r /var/cache/apk && \
    rm -r /usr/share/man 

ENTRYPOINT git pull && \
    pip install --no-cache-dir -r requirements.txt && \
    sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
    sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
    python ./run.py
CanvasQAQ commented 4 years ago
FROM python:3.6-alpine

ENV LIBRARY_PATH=/lib:/usr/lib \
        USER_NAME='' \
        USER_PASSWORD=''

WORKDIR /app

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
        apk add --no-cache git && \
        git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
        pip install --no-cache-dir -r requirements.txt && \
        rm -r /var/cache/apk && \
        rm -r /usr/share/man

ENTRYPOINT git pull && \
        pip install --no-cache-dir -r requirements.txt && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
        sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
        python ./run.py

按照这个搞,从文章给出来的docker地址的dockerfile改了一下,加了个gcc

如果在大陆要用proxy 自己按照任意的博客实现使用docker代理,然后 docker build --network=host -t test/bilibili_helper . 运行的时候也在本项目wiki给出的上加上--network=host即可

再次感谢,已经正常运行了,就是docker占空间大了一倍,200多MB,顺便手动 @Dawnnnnnn ,抽空可以更改一下dockerfile顺手把docker hub上的镜像更新下,实测可用dockerfile如下,我不是很会git的分支,就不献丑了:

FROM python:3.6-alpine

MAINTAINER zsnmwy <szlszl35622@gmail.com>

ENV LIBRARY_PATH=/lib:/usr/lib \
    USER_NAME='' \
    USER_PASSWORD=''

WORKDIR /app

RUN apk add --no-cache --virtual bili build-base python-dev py-pip jpeg-dev zlib-dev gcc && \
    apk add --no-cache git && \
    git clone https://github.com/Dawnnnnnn/bilibili-live-tools.git /app && \
    pip install --no-cache-dir -r requirements.txt && \
    rm -r /var/cache/apk && \
    rm -r /usr/share/man 

ENTRYPOINT git pull && \
    pip install --no-cache-dir -r requirements.txt && \
    sed -i ''"$(cat conf/bilibili.conf -n | grep "username =" | awk '{print $1}')"'c '"$(echo "username = ${USER_NAME}")"'' conf/bilibili.conf && \
    sed -i ''"$(cat conf/bilibili.conf -n | grep "password =" | awk '{print $1}')"'c '"$(echo "password = ${USER_PASSWORD}")"'' conf/bilibili.conf && \
    python ./run.py
Dawnnnnnn commented 4 years ago

已更新