Docker Ubuntu 20无法安装MSODBCSQL17或13 SQL Server ODBC驱动程序13或17

发布于 2025-02-01 03:27:35 字数 1886 浏览 2 评论 0原文

不幸的是,我有点绝望。 我创建了一个dockerimage,并用docker-compose运行了所有内容。 如果我运行Docker-Compose,我会收到此错误:

| django.core.exceptions.improperlyconfigured:'MSSQL'不是可用的数据库后端或无法导入的。检查上述例外。要使用内置的后端之一,请使用'django.db.backends.xxx',其中xxx是: Web_1 | 'mysql','oracle','postgresql','sqlite3'

如果我在pip列表中看到,我会看到少的软件包。

:( Docker-Compose运行Web Pip列表

Package    Version
---------- -------
asgiref    3.5.2
Django     4.0.4
pip        22.0.4
psycopg2   2.9.3
setuptools 58.1.0
sqlparse   0.4.2
wheel      0.37.1
´´´

Dockerfile

FROM ubuntu:20.04
FROM python:3
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/

RUN apt update -y && apt upgrade -< && apt-get update
RUN apt-get install -y pip curl git python3-pip openjdk-8-jdk unixodbc-dev
#RUN pip install --upgrade pip

RUN pip install -r requirements.txt

#ADD SQL SERVER ODBC Driver 17 for Ubuntu 20.04
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql17
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
COPY . /code/

´´´

Enesuption.txt

Django>=4.0
psycopg2>=2.8
django-mssql==1.8
djangorestframework==3.13.1
pymssql==2.2.3
pyodbc==4.0.32
pyparsing==3.0.4
setuptools==61.2.0
sqlparse==0.4.1

´´´

docker-compose.yml

version: "3"

services:
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"

unfortunately I'm a bit desperate.
I have created a dockerimage and am running everything with docker-compose.
If i run docker-compose up i get this error:

| django.core.exceptions.ImproperlyConfigured: 'mssql' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of:
web_1 | 'mysql', 'oracle', 'postgresql', 'sqlite3'

if i see in the pip list, i see to less packages.

:(
docker-compose run web pip list

Package    Version
---------- -------
asgiref    3.5.2
Django     4.0.4
pip        22.0.4
psycopg2   2.9.3
setuptools 58.1.0
sqlparse   0.4.2
wheel      0.37.1
´´´

Dockerfile

FROM ubuntu:20.04
FROM python:3
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/

RUN apt update -y && apt upgrade -< && apt-get update
RUN apt-get install -y pip curl git python3-pip openjdk-8-jdk unixodbc-dev
#RUN pip install --upgrade pip

RUN pip install -r requirements.txt

#ADD SQL SERVER ODBC Driver 17 for Ubuntu 20.04
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql17
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
COPY . /code/

´´´

requirements.txt

Django>=4.0
psycopg2>=2.8
django-mssql==1.8
djangorestframework==3.13.1
pymssql==2.2.3
pyodbc==4.0.32
pyparsing==3.0.4
setuptools==61.2.0
sqlparse==0.4.1

´´´

docker-compose.yml

version: "3"

services:
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半透明的墙 2025-02-08 03:27:35

docker -compose构建-d

这是构建新的。然后,我很容易解决。只需更改Dockerfile中的一些行。

还会更改需求DJANGO-MSSQL为MSSQL-DJANGO

docker-compose up build -d

This builds the compose new. Then i get easy errors to fix. Just change some lines in Dockerfile.

Also change in requirements django-mssql into mssql-django

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文