Diary/2024-12-11
Docker
ぱっと使えるようになっておきたいなあ,と,普段使いにしてみようかな.
コンテナは
https://docs.docker.jp/develop/develop-images/dockerfile_best-practices.html
Dockerfile で定義したイメージによって生成するコンテナは、 可能な限り一時的( エフェメラルephemeral )であるべきです。 一時的が意味するのは、コンテナとは停止および破棄可能であり、 その後も極めて最小限のセットアップと設定により、 再構築や置き換えが可能だからです。
だそうなので,普段使いにするにしてもぶくぶく太らせるのも,なにか違うようだけど.
ディレクトリ構成
├── docker-compose.yml ├── container/ │ ├── Dockerfile │ └── install.sh └── work/
とか用意して
UID=$(id -u) GID=$(id -g) docker compose build docker compose up -d
で起動.
docker compose exec container bash
でログインして,あれこれ.
docker compose donw
で片付け.
Dokerfileとdocker-compose.yml,install.shを以下のように.
Dockerfile
FROM ubuntu:22.04
RUN apt update && apt install -y sudo RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime RUN chmod 755 /root/install.sh RUN /root/install.sh ARG UID ARG GID ENV USER=user \ GROUP=user \ HOME=/home/user RUN groupadd $GROUP -g ${GID:-1000} && \ useradd -g $GROUP -G sudo -u ${UID:-1000} -m -s /bin/bash $USER && \ echo 'user:password' | chpasswd && \ echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers USER $USER WORKDIR $HOME
docker-compose.yml
services: container: hostname: container build: context: ./container dockerfile: Dockerfile args: - UID=${UID- } - GID=${GID- } volumes: - ./work:/home/user stdin_open: true tty: true networks: network: {} networks: network: driver: bridge
install.sh
apt update