dockerfile
[toc]
1.例子
1# 选择一个已有的os镜像作为基础
2FROM docker.io/centos:7.4.1708
3
4# 镜像的作者
5MAINTAINER xuchenbing
6
7#配置阿里的yum源,删除系统自带的yum源
8RUN rm -rf /etc/yum.repos.d/CentOS7-Base-163.repo
9#将阿里的yum文件复制进去
10COPY CentOS7-Base-163.repo /etc/yum.repos.d/CentOS7-Base-163.repo
11#设置亚洲时区
12RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
13#安装openssh-server
14RUN yum install -y openssh-server \
15 #修改配置
16 && sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config \
17 #安装openssh-clients
18 && yum install -y openssh-clients \
19 #修改root密码
20 && echo "root" | passwd --stdin root \
21 #生成密钥
22 && ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key \
23 && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \
24 && ssh-keygen -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key \
25 && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key \
26 #清除yum安装缓存
27 && yum clean all
28
29
30#设置支持中文字符
31RUN locale \
32 && localedef -i zh_CN -c -f UTF-8 zh_CN.UTF-8 \
33 && echo "export LC_ALL=zh_CN.UTF-8" >> /etc/profile && source /etc/profile \
34ENV LANG zh_CN.UTF-8
35ENV LC_CTYPE zh_CN.UTF-8
36#暴露22端口
37EXPOSE 22
38
39
40
41## java环境的 已经在外面配置好的
42COPY jdk /home/jdk
43ENV JAVA_HOME=/home/jdk
44ENV PATH=$JAVA_HOME/bin:$PATH
45ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
46
47## MAVEN的环境
48COPY apache-maven-3.3.9 /home/apache-maven-3.3.9
49ENV MAVEN_HOME=/home/apache-maven-3.3.9
50ENV PATH=$MAVEN_HOME/bin:$PATH
51
52
53
54#svn的环境
55run yum install -y subversion
56
57#git的环境
58run yum install -y git
59
60
61
62#jenkins 搭建
63COPY jenkins.war /root/jenkins.war
64COPY .jenkins/ /root/.jenkins
65EXPOSE 8888
66
67#ssh进入后还有 env设置的饿变量
68Run echo "export $(cat /proc/1/environ |tr '\0' '\n' | xargs)" >> /etc/profile
69
70WORKDIR /root
71#执行后台启动ssh服务命令
72#RUN ["/bin/sh","/usr/sbin/sshd", "-D"]
73RUN echo -e "#!/bin/sh" >> /root/a.sh
74RUN echo -e "/usr/sbin/sshd -D &" >> /root/a.sh
75RUN echo -e "nohup java -jar jenkins.war --httpPort=8888 > /root/jenkin.log 2>&1 &" >> /root/a.sh
76RUN echo -e "/bin/bash" >> /root/a.sh
77RUN chmod +x /root/a.sh
78ENTRYPOINT ["/bin/sh","/root/a.sh"]
79
80
81
82#USER root
83#ARG dockerGid=999
84#RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group
85#RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers