Files
xwindow-korean/Dockerfile
2025-09-02 19:27:37 +09:00

90 lines
3.5 KiB
Docker

FROM debian:bookworm
ENV DEBIAN_FRONTEND=noninteractive
# 한국 Debian 미러 소스로 변경
RUN echo "deb http://ftp.kr.debian.org/debian bookworm main" > /etc/apt/sources.list && \
echo "deb http://ftp.kr.debian.org/debian bookworm-updates main" >> /etc/apt/sources.list && \
echo "deb http://ftp.kr.debian.org/debian-security bookworm-security main" >> /etc/apt/sources.list
RUN sed -i 's|deb.debian.org|ftp.kaist.ac.kr|g' /etc/apt/sources.list && \
sed -i 's|security.debian.org|ftp.kaist.ac.kr/debian-security|g' /etc/apt/sources.list
RUN apt-get update
# locale gen
RUN apt-get install -y locales
ENV TZ=Asia/Seoul
ENV LANG=ko_KR.UTF-8
ENV LANGUAGE=ko_KR:ko
ENV LC_ALL=ko_KR.UTF-8
RUN sed -i 's/^# *ko_KR.UTF-8 UTF-8/ko_KR.UTF-8 UTF-8/' /etc/locale.gen && locale-gen $LANG && update-locale LANG=$LANG
# install modules
RUN apt-get install -y dbus-x11 x11-xserver-utils xfce4 xfce4-goodies xorgxrdp xrdp tumbler \
ibus ibus-gtk3 fcitx5-hangul fcitx5-config-qt fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 fcitx5-frontend-qt5 fonts-noto-cjk iputils-ping \
sudo nano vim net-tools build-essential chromium git curl wget build-essential cmake git libjson-c-dev libwebsockets-dev --fix-missing
RUN apt-get install -y build-essential cmake git libjson-c-dev libwebsockets-dev --fix-missing \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN git clone https://github.com/tsl0922/ttyd.git
RUN cd ttyd && mkdir build && cd build
RUN cmake ..
RUN make && sudo make install
RUN cd ~
# Node.js와 npm을 NodeSource에서 설치 (더 안정적)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs
# install vscode
RUN curl -q -L -o vscode.deb https://update.code.visualstudio.com/1.103.2/linux-deb-x64/stable \
&& apt-get install ./vscode.deb \
&& rm -rf ./vscode.deb /etc/apt/sources.list.d/vscode.sources
# install .NET 8 and .NET 9 (전역 설치)
RUN curl -L https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
RUN chmod +x dotnet-install.sh
RUN ./dotnet-install.sh --channel 8.0 --install-dir /usr/share/dotnet
RUN ./dotnet-install.sh --channel 9.0 --install-dir /usr/share/dotnet
RUN rm -rf ./dotnet-install.sh
# PATH에 .NET 추가 및 심볼릭 링크 생성
RUN ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
ENV PATH="/usr/share/dotnet:${PATH}"
ENV DOTNET_ROOT="/usr/share/dotnet"
# Claude code cli (npm으로 직접 설치)
RUN npm install -g @anthropic-ai/claude-code
ENV PATH="/usr/local/bin:${PATH}"
# git information
RUN git config --global user.email "user@mail.com"
RUN git config --global user.name "docker-debian"
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
COPY user-entrypoint.sh /etc/X11/Xsession.d/97user-entrypoint
COPY initial-resource/ /var/initial-resource/
# korean keycode correction
RUN sed -i 's/<HNGL> = 209;/<HNGL> = 122;/g' /usr/share/X11/xkb/keycodes/xfree86
RUN sed -i 's/<HJCV> = 210;/<HJCV> = 121;/g' /usr/share/X11/xkb/keycodes/xfree86
# startup profile
RUN echo "TZ=Asia/Seoul" >> /etc/environment && \
echo "LANG=ko_KR.UTF-8" >> /etc/environment && \
echo "LANGUAGE=ko_KR:ko" >> /etc/environment && \
echo "LC_ALL=ko_KR.UTF-8" >> /etc/environment && \
echo "GTK_IM_MODULE=fcitx" >> /etc/environment && \
echo "QT_IM_MODULE=fcitx" >> /etc/environment && \
echo "QT4_IM_MODULE=fcitx" >> /etc/environment && \
echo "QT5_IM_MODULE=fcitx" >> /etc/environment && \
echo "XMODIFIERS=@im=fcitx" >> /etc/environment
EXPOSE 3389
ENTRYPOINT /entrypoint.sh