#49 x86_64 Ubuntu 24.10 + JDK17 도커 이미지 생성하기
star
Tasks
Dockerfile#
FROM ubuntu:24.10
#############################
ARG ROOT_PASSWORD
ARG JDK_VER_NO
ARG CHIP_TYPE
ENV KKOZZI_VERSION="ubuntu 24.10 \& OpenJDK $JDK_VER_NO"
ENV KKOZZI_JDK_VER=openjdk-$JDK_VER_NO-jdk
ENV KKOZZI_JDK_AMD_NAME=java-$JDK_VER_NO-openjdk-amd64
ENV KKOZZI_JDK_ARM_NAME=java-$JDK_VER_NO-openjdk-arm64
#############################
ENV DEBIAN_FRONTEND noninteractive
ENV TZ=Asia/Seoul
RUN apt-get update && \
apt-get upgrade -y -o Dpkg::Options::="--force-confold" && \
apt-get install -y --no-install-recommends dialog apt-utils tzdata && \
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN apt-get clean && apt-get update && apt-get install -y \
vim \
iputils-ping \
net-tools curl \
sudo \
locales \
openssh-server \
cron \
sshpass \
$KKOZZI_JDK_VER
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
&& localedef -i ko_KR -c -f UTF-8 -A /usr/share/locale/locale.alias ko_KR.UTF-8
ENV LANG ko_KR.utf8
# RUN locale-gen ko_KR.UTF-8
# ENV LC_ALL ko_KR.UTF-8
# JDK for Apple M1
WORKDIR /usr/lib/jvm
RUN if [ "$CHIP_TYPE" = "arm" ] ; then \
ln -s $KKOZZI_JDK_ARM_NAME $KKOZZI_JDK_AMD_NAME; \
fi
WORKDIR /
#############################
### 사용자 생성 및 디렉토리 생성 ###
#############################
# Add the user UID:1001, GID:1002, home at /home/kkozzi
RUN groupadd -r kkozzi -g 1001 && useradd -u 1002 -r -g kkozzi -m -d /home/kkozzi -s /bin/bash -c "KKOZZI USER" kkozzi && chmod 755 /home/kkozzi
# make directory /App, /Data, /Log
RUN mkdir -p /App && mkdir -p /App/down && mkdir -p /Data && mkdir -p /Log
RUN chmod 755 /App && chmod 755 /Data && chmod 755 /Log
RUN chown kkozzi:kkozzi /App && chown kkozzi:kkozzi /App/down && chown kkozzi:kkozzi /Data && chown kkozzi:kkozzi /Log
RUN echo "kkozzi ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/kkozzi && chmod 0440 /etc/sudoers.d/kkozzi
##############################
### openssh-server 환경 설정 ###
##############################
RUN mkdir -p /var/run/sshd && echo 'root:$ROOT_PASSWORD' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now \n\
export JAVA_HOME=/usr/lib/jvm/$KKOZZI_JDK_AMD_NAME \n\
" >> /etc/profile
RUN echo "echo \n\
echo Welcome to KKOZZI Ubuntu \($KKOZZI_VERSION\).. \n\
echo Support: https://karaf.io \n\
" >> /etc/bash.bashrc
#######################
### 로그인 프롬프트 변경 ###
#######################
RUN echo "export PS1='\n\
\[\\033[01;32m\\]\\u@docker-ubuntu23:\\[\\033[00m\\][\\[\\033[01;34m\\]\$PWD\\[\\033[00m\\]]\n\
$ ';" >> /root/.bashrc
RUN echo "export PS1='\n\
\[\\033[01;32m\\]\\u@docker-ubuntu23:\\[\\033[00m\\][\\[\\033[01;34m\\]\$PWD\\[\\033[00m\\]]\n\
$ ';" >> /home/kkozzi/.bashrc
RUN echo "export LANG=ko_KR.UTF-8 \n\
export LC_ALL=ko_KR.UTF-8 \n\
echo \n\
" >> /home/kkozzi/.bashrc
RUN chown kkozzi:kkozzi /home/kkozzi/.bashrc
RUN ssh-keygen -A
########################
### kkozzi 사용자 환경 ###
########################
USER kkozzi
ENV JAVA_HOME /usr/lib/jvm/$KKOZZI_JDK_AMD_NAME
# kkozzi 사용자의 기본 작업 디렉터리를 /home/kkozzi로 설정
WORKDIR /home/kkozzi
####################
### 서비스 포트 노출 ###
####################
EXPOSE 22
CMD ["sudo", "/usr/sbin/sshd", "-D"]
빌드#
docker build --no-cache \
--build-arg ROOT_PASSWORD=PassworD7 \
--build-arg JDK_VER_NO=17 \
--build-arg CHIP_TYPE=amd \
-t kkozzi-amd64-ubuntu2410-jdk17:2025.0106 .
Comment 0
-
Added
KKoZZi added
dockerlabel 01-06 -
KKoZZi added
javalabel 01-06 -
KKoZZi added
ubuntulabel 01-06
Add a comment
Comment 0