Dockerレシピ -汎用Linux-
使い方
接続方法
工事中
データ保存方法
工事中
パスワード変更方法
工事中
パラメータシート
ディレクトリ構造
工事中
docker-compose.yml
services:
common-debian12:
build:
context: ./
dockerfile: Dockerfile
image: custom/common-debian12:latest
container_name: common-debian12
hostname: common-debian12
restart: no
secrets:
- CHANGE_PW
volumes:
- type: bind
source: "./bind/host/"
target: "/host/"
extra_hosts:
- host.docker.internal:host-gateway
ports:
- "9999:22"
networks:
- frontend
networks:
frontend:
external: true
secrets:
CHANGE_PW:
file: ./bind/secrets/PW.txt
Dockerfile
# syntax=docker/dockerfile:1.7
FROM debian:11
# ============パッケージインストール作業============
USER root
# OSパッケージインストール -基本編-
RUN apt-get update && apt-get install -y \
vim \
less \
sudo \
htop \
expect \
tree \
acl \
bash-completion \
apt-utils \
software-properties-common \
zip \
unzip \
dos2unix
# OSパッケージインストール -ネットワーク設定編-
RUN apt-get update && apt-get install -y \
iputils-tracepath \
iputils-ping \
apt-transport-https \
ca-certificates \
bind9-utils \
network-manager \
net-tools \
traceroute \
nmap \
netcat-openbsd \
dnsutils
# OSパッケージインストール -ネットワークツール編-
RUN apt-get update && apt-get install -y \
curl \
git \
wget \
telnet \
nfs-common \
smbclient \
openssh-client \
openssh-server \
lynx
# OSパッケージインストール -フォント編-
RUN apt-add-repository contrib -y \
&& apt-add-repository non-free -y \
&& apt-get update && apt-get install -y \
build-essential \
ttf-mscorefonts-installer \
fontconfig \
fonts-noto-cjk \
fonts-noto-cjk-extra \
fonts-noto-color-emoji \
fonts-ipaexfont \
fonts-ipaexfont-gothic \
fonts-ipaexfont-mincho \
fonts-ipafont \
fonts-ipafont-gothic \
fonts-ipafont-mincho \
fonts-ipamj-mincho \
&& fc-cache -r
# OSパッケージインストール -汎用開発編-
RUN apt-get update && apt-get install -y \
build-essential
# OSパッケージインストール -python編-
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
python3-dev \
python-is-python3 \
python3-numpy \
python3-pandas \
python3-matplotlib \
python3-seaborn \
python3-openpyxl \
python3-pil \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-sphinx-autobuild
# OSパッケージインストール -Go編-
RUN apt-get update && apt-get install -y \
golang \
delve
# Pwshインストール
RUN wget -q https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb \
&& dpkg -i ./packages-microsoft-prod.deb \
&& apt-get update && apt-get install -y powershell \
&& rm -rf ./packages-microsoft-prod.deb
# AWS CLIインストール
RUN wget -q https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip \
&& unzip ./awscli-exe-linux-x86_64.zip \
&& ./aws/install -i /usr/local/aws-cli -b /usr/local/bin \
&& rm -rf ./awscli-exe-linux-x86_64.zip ./aws
# Hugoインストール
RUN wget -q https://github.com/gohugoio/hugo/releases/download/v0.125.5/hugo_extended_0.125.5_linux-amd64.deb \
&& dpkg -i ./hugo_extended_0.125.5_linux-amd64.deb \
&& rm -rf ./hugo_extended_0.125.5_linux-amd64.deb
# Github CLIインストール
RUN mkdir -p -m 755 /etc/apt/keyrings \
&& wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& apt-get update && apt-get install -y gh \
&& echo "eval \"\$(gh completion -s bash)\"" > /etc/profile.d/githubcli-completion.sh
# Firpleフォントインストール
RUN wget -q https://github.com/negset/Firple/releases/download/4.000/Firple.zip \
&& unzip ./Firple.zip \
&& wget -q https://github.com/negset/Firple/releases/download/4.000/FirpleSlim.zip \
&& unzip ./FirpleSlim.zip \
&& cp -vf ./Firple*.ttf /usr/local/share/fonts/ \
&& rm -rf ./Firple* \
&& fc-cache -r
# ============OS基本設定作業============
USER root
# OS日本語設定
RUN apt-get update && apt-get install -y locales \
&& sed -i 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/g' /etc/locale.gen \
&& locale-gen \
&& echo "export LANG='ja_JP.UTF-8'" > /etc/profile.d/lang-jp.sh \
&& echo "export LC_ALL='ja_JP.UTF-8'" >> /etc/profile.d/lang-jp.sh \
&& echo "export LANGUAGE='ja_JP:ja'" >> /etc/profile.d/lang-jp.sh \
&& ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# sudo可能な一般ユーザー作成
RUN groupadd -g 1000 group \
&& useradd -m -s /bin/bash -u 1000 -g 1000 -G sudo user \
&& echo "user:P@ssw0rd" | chpasswd \
&& echo "user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
# SSHサーバーの準備
RUN mkdir -p /var/run/sshd \
&& chmod 755 /var/run/sshd \
&& chown root.root /var/run/sshd \
&& sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config \
&& ssh-keygen -A
# ホストOSとの共有フォルダ作成
RUN mkdir /host && chmod 1777 /host
# ============実行ユーザー作業============
USER user
# ホストOSとの共有フォルダのリンク
RUN ln -s /host /home/user/host
# ============起動設定============
USER root
# OSパッケージの不要ファイル掃除
RUN apt-get upgrade -y \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 起動スクリプトを生成する。
COPY <<-EOF /etc/docker-entrypoint.sh
#!/bin/bash
# ----------------Start---------------
[ -n "$(cat /run/secrets/CHANGE_PW)" ] && echo "user:$(cat /run/secrets/CHANGE_PW)" | chpasswd
/usr/sbin/sshd -D
# ----------------End-----------------
EOF
RUN chmod +x /etc/docker-entrypoint.sh
# 公開するポート
EXPOSE 22
# 起動時に実行するコマンド
CMD ["/etc/docker-entrypoint.sh"]