jarod8016b 发表于 2019-2-21 11:49:16

Docker 标准化镜像制作


[*]  最近接触docker 应用过程中发现很多制作镜像踩得坑(如:sshd问题和docker 内部时区问题,处理中文字符集,添加发布系统ssh-key,便于自动化(ansiable 管理);
[*]  如下是踩坑过总结的docker-file 文件;
#########载入基础镜像######
FROM centos7:latest      
MAINTAINER ljx
##########安装常用命令包##########   
RUN yum -y install net-tools lsof openssh-server openssl openssl-devel   wget curl supervisor
##########系统管理key文件###########
RUN curl http://xxxx/scripts/add_ops.sh | sh
###########发布系统key 认证#########
RUN curl http://xxxx:9090/scripts/add_jenkins.sh | sh
RUN mkdir /chj/data/ -p && mkdir /chj/app && mkdir /chj/devops && mkdir /chj/pkg && mkdir /chj/log && mkdir /chj/pkg/jdk/
##########设置CST时区##############
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
##########设置中文字符集###########
RUNyum -y install kde-l10n-Chinese telnetreinstall glibc-common &&   localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
##########################################
###########设置时间#########
RUN yum -y install cron*ntp && echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >/var/spool/cron/root
###########ssh 服务配置###########
RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
##########配置容器java 环境#######
COPY ./base/jdk /chj/pkg/jdk/
RUN chmod +x /chj/pkg/jdk/bin/* && ln -s /chj/pkg/jdk/bin/java/usr/sbin/java
#########修改环境变量############
ADD ./base/bashrc /root/.bashrc
ADD ./base/supervisord.conf /etc/supervisord.conf
ADD ./base/ntp.ini /etc/supervisord.d/
ADD ./base/sshd.ini /etc/supervisord.d/sshd.ini
ADD ./base/setup.sh /opt
RUN chmod a+x /opt/setup.sh
ENTRYPOINT [ "bash", "/opt/setup.sh","exec ","$@" ]
########开放SSH服务端口##########
EXPOSE   22


页: [1]
查看完整版本: Docker 标准化镜像制作