利用 docker 运行 qrcode 获取内网文本内容

这里使用 apline 作为基础镜像,因为真的很小,只有 5M 多一点
为什么使用 docker?因为避免环境不一致的情况,内网环境缺少各种折磨人的依赖,使用 docker 就可以完美的规避了

FROM alpine:3.16.3

ENV LANG=en_US.UTF-8
ENV TZ="Asia/Shanghai"

RUN apk --update --no-cache add libqrencode && \
    rm -rf /var/cache/apk/* && \
    echo '/bin/sleep 315360000' > start.sh
CMD ["sh","start.sh"]

通过 docker build 生成新的镜像

docker build -t qrencode:4.1.1 .

创建一个目录提供给 qrcode 做数据存储,方便获取 二维码 图片

mkdir qr_png

启动 docker 容器,注意持久化路径

docker run -d \
-v $(pwd)/qr_png:/tmp \
--network none \
--name qrcode \
qrencode:4.1.1

将需要转换成二维码的内容写到前面创建的 qr_png 目录下,然后执行下面的命令,完成后,可以在 qr_png 目录下找到生成的 二维码 图片

docker exec -it qrcode qrencode -r /tmp/Dockerfile -o /tmp/Dockerfile.png

libqrencode 的一个缺点就是无论文本里面有多少行内容,最终扫码获取到的内容只有一行,所以有大量内容需要获取的场景,可以定义换行符,通过其他方式替换即可

posted @ 2022-11-21 20:26  月巴左耳东  阅读(28)  评论(0)    收藏  举报  来源