为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 MariaDB 运行 dockerized Django REST Framework

如何使用 MariaDB 运行 dockerized Django REST Framework

GCT1015 2023-04-11 16:16:06
正如标题:我在使用 Docker 时遇到了切换到 MariaDB 的麻烦。只要我从磁盘本地启动许多不同的数据库(默认 SQLite、PostgreSQL 和 MariaDB),每个配置都可以正常工作。SQLite 和 PostgreSQL 也可以与 Docker 一起工作(Postgres 的驱动程序安装顺利),但是 MariaDB 报告获取MariaDB Connector/C.Dockerfile:FROM python:3.8.5-alpine3.12ENV PYTHONUNBUFFERED 1COPY ./requirements.txt /requirements.txtRUN apk add libmariadb3RUN pip install -r /requirements.txtRUN mkdir /appWORKDIR /appCOPY ./app /appRUN adduser --disabled-password userUSER userdocker-compose.yml:version: "3"services:  app:    build:      context: .    ports:      - "8000:8000"    volumes:      - ./app:/app    command:      sh -c "python manage.py runserver 0.0.0.0:8000"    environment:      [...]    depends_on:      - db  db:    image: mariadb:10.5.4    environment:      [...]我得到的错误是:[...]Step 4/11 : RUN apk add libmariadb3 ---> Running in 5a3e568b8ac3fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gzfetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gzERROR: unsatisfiable constraints:  libmariadb3 (missing):    required by: world[libmariadb3]ERROR: Service 'app' failed to build: The command '/bin/sh -c apk add libmariadb3' returned a non-zero code: 1根据文档,MariaDB Connector/C可以使用apt-get、yum、dnf、zypper或从源代码安装,但显然不能使用apk.考虑的解决方案:下载MariaDB Connector/Ctar.gz 到项目目录,并在构建镜像时复制它。缺点:必须手动更新驱动程序。使用在 Ubuntu 上运行的 Python 图像。缺点:它够小吗?它是否仍然受支持(在 Docker 中心的列表中不可见)?正如我上面所写,这些解决方案似乎并不令人满意。你知道其他配置 MariaDB 以与 Python 一起工作的方法吗?
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

似乎python:3.9.0b5-buster已经准备好了一切956MB:


$ cat Dockerfile 


FROM python:3.9.0b5-buster 

RUN apt-get update

RUN apt-get install libmariadb3


$ docker build -t py-booster-with-maria .


Step 3/3 : RUN apt-get install libmariadb3

 ---> Running in 40be8f94b3de

Reading package lists...

Building dependency tree...

Reading state information...

libmariadb3 is already the newest version (1:10.3.22-0+deb10u1).

libmariadb3 set to manually installed.

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.


docker image ls | grep py-booster-with-maria


py-booster-with-maria              latest                       e7c61439835f        7 minutes ago       956MB



查看完整回答
反对 回复 2023-04-11
?
MM们

TA贡献1886条经验 获得超2个赞

您是否尝试过 mariadb-connector-c 软件包?它提供/usr/lib/libmariadb.so.3。

RUN apk add mariadb-connector-c


查看完整回答
反对 回复 2023-04-11
  • 2 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信