# ベースイメージ
FROM ubuntu:24.04

# コンテナ環境変数
# ja_JP.UTF-8 は language-pack-ja インストール後に有効化するため、初期段階では C.UTF-8 を使用します。
ENV LANG='C.UTF-8'

# ビルド引数
ARG DEBIAN_FRONTEND=noninteractive
ARG user=developer

# 日本国内の Ubuntu APT ミラーを設定し、基本証明書をインストール
RUN rm -f /etc/apt/sources.list.d/ubuntu.sources && \
	echo "deb http://jp.archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" > /etc/apt/sources.list && \
	echo "deb http://jp.archive.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse" >> /etc/apt/sources.list && \
	echo "deb http://jp.archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
	echo "deb http://jp.archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse" >> /etc/apt/sources.list && \
	apt-get update && \
	apt-get install -y --no-install-recommends --reinstall ca-certificates && \
	update-ca-certificates --fresh

# 必要な開発ツールとランタイムをインストール
RUN apt-get update && \
	apt-get upgrade -y --no-install-recommends && \
	apt-get install -y --no-install-recommends \
	sudo bash-completion command-not-found vim \
	build-essential gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
	pkgconf nfs-common meson psmisc arch-install-scripts lz4 \
	kmod inetutils-ping net-tools iproute2 language-pack-ja tzdata tree x11-apps x11-utils \
	x11-xserver-utils libxrender1 libxtst6 libxi6 dbus-x11 gedit fonts-noto-cjk qtcreator sshpass \
	xterm adb qtbase5-dev qttranslations5-l10n\
	file git ssh make gcc libssl-dev \
	liblz4-tool expect expect-dev g++ patchelf chrpath gawk texinfo chrpath \
	diffstat binfmt-support qemu-user-static live-build bison flex fakeroot \
	cmake unzip device-tree-compiler ncurses-dev \
	libgucharmap-2-90-dev bzip2 expat gnupg2 cpp-aarch64-linux-gnu libgmp-dev \
	libmpc-dev bc python-is-python3 python3 gettext libc6-dev libncurses-dev rsync

# ユーザーを追加
RUN \
if id "ubuntu" &>/dev/null; then \
   passwd -d ubuntu && usermod -l ${user} -d /home/${user} -m ubuntu && groupmod -n ${user} ubuntu; \
else \
  adduser --disabled-password --gecos "" ${user} && adduser ${user} sudo && \
  echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers; \
fi && \
locale-gen ja_JP.UTF-8 && \
update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja LC_ALL=ja_JP.UTF-8 && \
dpkg-reconfigure --frontend noninteractive locales && \
rm -f /etc/localtime && \
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \
dpkg-reconfigure --frontend noninteractive tzdata && \
mkdir -p /home/${user}/configs && \
mkdir -p /home/${user}/.config/QtProject && \
mkdir -p /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-aarch64-gnu-g++

# プロジェクトファイルをイメージへコピー
COPY files/start.sh /usr/local/bin/
COPY files/load_rootfs /usr/local/bin/
COPY files/export_rootfs /usr/local/bin/
COPY files/cross.cmake /home/${user}/configs/
COPY files/welcome.txt /home/${user}/configs/
COPY files/qt.conf /usr/lib/qt5/bin/
COPY files/linux-aarch64-gnu-g++/ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-aarch64-gnu-g++/
COPY files/QtProject/ /home/${user}/.config/QtProject/
COPY files/bash_aliases /home/${user}/.bash_aliases


# 標準ユーザー権限を復元
RUN chown -R ${user}:${user} /home/${user}

# 日本語ロケールを最終環境として設定
ENV LANG='ja_JP.UTF-8'
ENV LANGUAGE='ja_JP:ja'
ENV LC_ALL='ja_JP.UTF-8'
