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?

UVを使った環境構築とDockerコンテナのセットアップ

Posted at

以前はPoetry派でしたが

最近UVを使うことになったのでDockerfileを更新したいと思います。

# Pythonをインストール
FROM python:3.12-slim

# ワークディレクトリパスを指定
WORKDIR /app

# UVをインストールに必要なライブラリをインストール
RUN apt-get update -y \
    && apt-get install -y curl ca-certificates \
    && apt-get -y clean all

# UVのインストール
ADD https://astral.sh/uv/install.sh /uv-installer.sh
RUN sh /uv-installer.sh && rm /uv-installer.sh

# UVを使用するに必要なパスを通す
ENV PATH="/root/.cargo/bin/:$PATH"

# プロジェクトの主要ファイルをコンテナにコピー
COPY README.md uv.lock pyproject.toml /app/

# UV用環境変数の設定
ENV UV_SYSTEM_PYTHON=true \ 
    UV_COMPILE_BYTCODE=1 \
    UV_CAHE_DIR=/root/.cache/uv \
    UV_LINK_MODE=copy

# アプリソースコードをコピー
COPY ./src/app /app

# アプリが使うパッケージをインストール
RUN uv export --frozen --no-dev --format requirements-txt > requirements.txt \ 
    && uv pip install -r requirements.txt

# 外部からアクセスのためポートを開く
EXPOSE 80

また、下記のようなdocker-compose.ymlにてコンテナーを作成します。

今回はFastAPIを使用したアプリを作っているのでuvicornを使用しサーバーを立ち上げます。

version: "3"

services:
  app: 
    build: .
    ports: 
      - "4000:80"
    env_file: ./.env
    command: uv run uvicorn app:app --host 0.0.0.0 --port 80 --reload
    tty: true

docker-compose up --buildを実行するとhttp://0.0.0.0:4000からアプリへアクセスできるようになります。

以上!

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?