0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

dockerで運用しているFlaskアプリからoracleDBに接続する。

Posted at

oracle instant client ダウンロード

ホストはwindowsでもコンテナの中はlinuxになるのでlinux用をダウンロードする!!!!!

image.png

dockerfileと同じ階層にクライアントを移動。
image.png

Dockerfile(dockerimageを作る設計図)を作成する。

# ベースイメージとしてPython 3.12.3の軽量バージョンを使用
FROM python:3.12.3-slim

# 作業ディレクトリを作成
WORKDIR /app

# Oracle Instant Client のライブラリをダウンロードして配置
RUN mkdir -p /opt/oracle && \
    apt-get update && \
    apt-get install -y libaio1 curl unzip

# Instant Clientファイルをコピー
COPY instantclient_21_12 /opt/oracle/instantclient_21_12

# Oracle Instant Clientのライブラリのパスを環境変数に設定
ENV LD_LIBRARY_PATH="/opt/oracle/instantclient_21_12:$LD_LIBRARY_PATH"
ENV ORACLE_HOME="/opt/oracle/instantclient_21_12"

# Instant Clientの展開と確認
RUN ls -l /opt/oracle/instantclient_21_12 && \
    ls -l /opt/oracle/instantclient_21_12/libclntsh.so

# Pipを最新バージョンにアップデート
RUN pip install --upgrade pip

# requirements.txtをコンテナにコピー
COPY requirements.txt .

# 必要なPythonパッケージをインストール
RUN pip install --no-cache-dir -r requirements.txt

# アプリケーションファイルをすべてコンテナにコピー
COPY . .

# 環境変数の設定
ENV FLASK_APP=flaskr
ENV FLASK_ENV=development

# ポート8083を公開
EXPOSE 8083

# アプリを起動
CMD ["flask", "run", "--host=0.0.0.0", "--port=8083", "--debug"]

【やっていること】
コンテナの中に ディレクトリを作成する
app COPY . .を実行した際に ホストのファイルがappにコピペされる。
/opt/oracle/
環境変数の設定
公開ポートの指定
Flask起動コマンド

Dockerfileからdockerimage(コンテナの設計図)作成。

image作成コマンド

docker build -t lossamount-flask-app .

docker-compose-yamlの作成

version: '3'		
services:		
  flask-app:		
    build: .		
    ports:		
      - "8083:8083"		
    volumes:		
      - .:/app		
    environment:		
      FLASK_ENV: development		
      FLASK_APP: flaskr		
      ORACLE_HOME: /opt/oracle/instantclient_21_12		
      LD_LIBRARY_PATH: /opt/oracle/instantclient_21_12:$LD_LIBRARY_PATH		
    command: flask run --host=0.0.0.0 --port=8083 --debug		

【やっていること】
コンテナ起動に関する設定を書いてある。
設定ファイルを使うことで、コンテナ起動を用意にできる。

コンテナ起動コマンド

docker-compose up -d
0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?