====== Dockerfile ======
* http://pyrasis.com/book/DockerForTheReallyImpatient/Chapter07/08
* http://pyrasis.com/book/DockerForTheReallyImpatient/Chapter04/02
* http://crosbymichael.com/dockerfile-best-practices.html
* http://crosbymichael.com/dockerfile-best-practices.html
* https://php-and-symfony.matthiasnoback.nl/2017/04/docker-build-patterns/
# 실행
docker run --rm -it ubuntu:latest bash
====== Docker file안에서 miniconda 설치 =====
# 실행
docker build --tag example .
docker run --rm -it example bash
FROM ubuntu:latest
ENV PATH="/root/miniforge3/bin:${PATH}"
ARG PATH="/root/miniforge3/bin:${PATH}"
RUN apt-get update
# RUN apt-get install -y wget && rm -rf /var/lib/apt/lists/*
RUN apt-get install -y curl
# uv
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
# cargo
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# miniforge
RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" | sh
RUN bash Miniforge3-Linux-x86_64.sh -b
RUN rm -f bash Miniforge3-Linux-x86_64.sh
RUN conda init
==== uv만 사용하는 경우 ====
FROM python:3.12-slim
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
WORKDIR /app
COPY . /app
RUN uv sync --frozen --no-cache
CMD ["uv", "run", "python", "app.py"]
* https://blog.devgenius.io/the-last-python-tool-youll-ever-need-uv-a2411cc260b1