如何解决Python、Linux、Raspberry Pi 和 Docker 的热敏打印机配置问题
正在开发用于控制热敏打印机的应用程序。该打印机连接到Raspberry Pi 4的USB端口。编程语言为Python,操作系统为Linux。正在从 Docker 容器执行控制热敏打印机的脚本。
打印机配置有错误,需要解决。以下是Dockerfile、需求和错误的脚本:
Dockerfile:
int** foo_arr = malloc(sizeof(int*)*4);
for(int i=0; i<4; i++) {
foo_arr[i] = malloc(sizeof(int)*4);
for(int j=0; j<4; j++) {
foo_arr[i][j] = -1; /* Using -1 here to represent None */
}
}
int* row_0 = foo_arr[0];
int** column_0 = malloc(sizeof(int)*4);
for(int i=0; i<4; i++) {
column_0[i] = &foo_arr[i][0]; /* Yes,technically the same as just doing foo_arr[i] for column 0 */
}
/* Changing the 2D array: */
foo_arr[0][0] = 0;
foo_arr[1][0] = 4;
foo_arr[2][0] = 8;
/* We should have:
*column_0[0] == 0;
*column_0[1] == 4;
*column_0[2] == 8; */
要求:
FROM python:3.8.3-alpine
# set work directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install psycopg2 dependencies
RUN apk update \
&& apk add postgresql-dev gcc python3-dev musl-dev
RUN apk add libjpeg-turbo-dev freetype-dev libpng-dev libusb
RUN apk add --update --no-cache curl jq py3-configobj py3-pip py3-setuptools python3 python3-dev
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# copy entrypoint.sh
COPY ./entrypoint.sh .
# copy project
COPY . .
# run entrypoint.sh
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]
错误:
Django==3.0.7
python-escpos==2.2.0
gunicorn==20.0.4
requests==2.24.0
psycopg2==2.8.5
psycopg2-binary==2.8.5
djangorestframework==3.11.0
django-cors-headers==3.4.0
pyusb==1.1.0
libusb1==1.9.1
libusb==1.0.23b7
pytz
escpos==1.8
解决方法
为了在 docker 容器中使用 USB 设备,您必须通过 --device
选项挂载设备文件或以 --privileged
运行容器。 Raspberry Pi 可能无论如何都没有必要关注安全性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。