programing

MariaDB를 사용하여 도커라이즈된 Django REST Framework 백엔드를 실행하는 방법

kingscode 2022. 10. 9. 11:28
반응형

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.

검토되는 솔루션:

  1. 다운로드.MariaDB Connector/Ctar.gz를 프로젝트 디렉토리에 복사하여 이미지를 빌드합니다.단점: 드라이버를 수동으로 업데이트해야 합니다.
  2. 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

반응형