Python 如何使用MariaDB运行停靠的Django REST框架后端?
如标题所示:当我使用Docker时,我很难切换到MariaDB 只要我从磁盘本地启动了许多不同的数据库(默认的SQLite、PostgreSQL和MariaDB),每个配置都可以正常工作。SQLite和PostgreSQL也与Docker配合使用(Postgres驱动程序的安装进展顺利),但MariaDB报告了获取Python 如何使用MariaDB运行停靠的Django REST框架后端?,python,docker,mariadb,Python,Docker,Mariadb,如标题所示:当我使用Docker时,我很难切换到MariaDB 只要我从磁盘本地启动了许多不同的数据库(默认的SQLite、PostgreSQL和MariaDB),每个配置都可以正常工作。SQLite和PostgreSQL也与Docker配合使用(Postgres驱动程序的安装进展顺利),但MariaDB报告了获取MariaDB连接器/C的问题 Dockerfile: FROM python:3.8.5-alpine3.12 ENV PYTHONUNBUFFERED 1 COPY ./req
MariaDB连接器/C
的问题
Dockerfile
:
FROM python:3.8.5-alpine3.12
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /requirements.txt
RUN apk add libmariadb3
RUN pip install -r /requirements.txt
RUN mkdir /app
WORKDIR /app
COPY ./app /app
RUN adduser --disabled-password user
USER user
docker 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 5a3e568b8ac3
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
ERROR: 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/C
tar.gz到项目目录,并在构建映像时复制它。缺点:必须注意手动更新驱动程序正如我在上面所写的,这些解决方案似乎并不令人满意。您知道配置MariaDB使用Python的其他方法吗?似乎
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-带maria的t py增压器。
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和maria
py-booster-with-maria latest e7c61439835f 7 minutes ago 956MB
您试过mariadb-connector-c软件包吗?它提供了
是的,我试过了,但结果是
OSError:mariadb config找不到。
。
RUN apk add mariadb-connector-c