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