90 lines
3.6 KiB
Docker
90 lines
3.6 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
|
|
|
|
RUN apt-get install -y fcitx5-hangul fcitx5-config-qt --fix-missing \
|
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
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}"
|
|
|
|
# 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 "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
|
|
|
|
EXPOSE 3389
|
|
ENTRYPOINT /entrypoint.sh
|