MariaDB를 사용하여 도커라이즈된 Django REST Framework 백엔드를 실행하는 방법
제목과 같이:도커를 사용할 때 MariaDB로 전환하는 데 어려움이 있습니다.
디스크에서 많은 다른 데이터베이스를 로컬로 기동하고 있는 한(기본 SQLite, Postgre)SQL 및 MariaDB)는 모든 구성이 정상적으로 작동했습니다.SQLite 및 PostgreSQL은 Docker에서도 작동하지만(Postgres 드라이버 설치는 원활하게 진행되지만), MariaDB는 가져오기 문제를 보고합니다.MariaDB Connector/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를 프로젝트 디렉토리에 복사하여 이미지를 빌드합니다.단점: 드라이버를 수동으로 업데이트해야 합니다. - Ubuntu에서 실행되는 Python 이미지를 사용합니다.단점: 충분히 작습니까?아직 지원됩니까(Docker's Hub 목록에는 표시되지 않음)?
위에서 썼듯이, 이 해결책들은 만족스럽지 못한 것 같습니다.Python과 함께 작동하도록 MariaDB를 구성하는 다른 방법을 알고 계십니까?
그런 것 같다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
mariadb-connector-c 패키지를 사용해 보셨습니까?/usr/lib/libmariadb.so.3을 제공합니다.
RUN apk add mariadb-connector-c
언급URL : https://stackoverflow.com/questions/63162275/how-to-run-dockerized-django-rest-framework-backend-with-mariadb
'programing' 카테고리의 다른 글
MySQL에서 현재 시간에 2시간을 추가하시겠습니까? (0) | 2022.10.09 |
---|---|
이게 뭐야? [Ljava.lang]오브젝트; (0) | 2022.10.09 |
쿼리를 최적화하기 위해 타임스탬프에 인덱스 만들기 (0) | 2022.10.09 |
phpMailer 및 PHP를 사용하여 양식에서 첨부 파일 보내기 (0) | 2022.10.09 |
그렇지 않으면 PHP 문에서 AND/OR 사용 (0) | 2022.10.09 |