0
1

Azure SQL Databaseに接続するWebアプリをデプロイする際はODBCの設定を忘れずに

Last updated at Posted at 2023-12-10

背景

作成したアプリが追加実装でDBと接続することになったが、デプロイしたところエラーが発生。
Dockerfileに追加で設定が必要とのこと。

App Serviceにデプロイするところまでは以下の記事の方法でできます。

Dockerfileを修正

こちらに記載されてる内容をDockerfileに追記する必要がある。
確かにローカルで実装する時に導入したodbcドライバーをApp Serviceの環境にも入れなければいけないのに、どこにも記載してなかった...

FROM python:3.9

WORKDIR /code

COPY requirements.txt .

RUN apt-get update && apt-get -y upgrade

# 以下を追記
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

RUN apt-get update

RUN ACCEPT_EULA=Y apt-get install -y msodbcsql18 && \
    ACCEPT_EULA=Y apt-get install -y mssql-tools18 unixodbc-dev

RUN echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc && \
    . ~/.bashrc

RUN pip install --no-cache-dir --upgrade -r requirements.txt

COPY . .

EXPOSE 3100

CMD ["gunicorn", "main:app"]

最後に

Pipelineではデプロイが成功してるのに、Webアプリを立ち上げると503エラーが発生してたので気づくまで時間がかかりました。
ログストリームには「odbcがありません」と記載されてるので、ログストリームをちゃんと確認しよう。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1