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 # RUN mkdir -p ~/.config/autostart # RUN cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/ # 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}" # additional package RUN apt-get install -y fcitx5 --fix-missing RUN apt-get clean && rm -rf /var/lib/apt/lists/* ## PlayWright Chrome RUN npx playwright install chrome # 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/ = 209;/ = 122;/g' /usr/share/X11/xkb/keycodes/xfree86 RUN sed -i 's/ = 210;/ = 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 "INPUT_METHOD=fcitx" >> /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 ## code server RUN curl -fsSL https://code-server.dev/install.sh | sh RUN which code-server && code-server --version EXPOSE 3389 ENTRYPOINT /entrypoint.sh