# Dockerfile各种构建
# Dockerfile 构建 centos
# Dockerfile
FROM centos:7
MAINTAINER leichu "chulei926@126.com"
RUN yum -y -q install net-tools
RUN yum -y install vim*
1
2
3
4
5
2
3
4
5
# build.sh
#!/usr/bin/env bash
docker build -t leichu-centos .
1
2
2
# 修改tag,推送到 私服
$ docker tag leichu-centos 127.0.0.1:5000/leichu-centos
$ docker push 127.0.0.1:5000/leichu-centos
1
2
2
# Dockerfile 构建 jdk
# Dockerfile
FROM 127.0.0.1:5000/leichu-centos
MAINTAINER leichu "chulei926@126.com"
## 通过 yum 方式安装
## yum 命令参数 : -y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)
RUN yum -y -q install java-1.8.0-openjdk
## 通过 下载安装包 方式安装
## ADD jdk-8u231-linux-x64.tar.gz /usr/local/java/
## ENV JAVA_HOME /usr/local/java/jdk1.8.0_231
## ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
## ENV PATH ${JAVA_HOME}/bin:$PATH
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# build.sh
#!/usr/bin/env bash
docker build -t jdk8 .
1
2
2
# build4openjdk.sh
#!/usr/bin/env bash
docker build -t openjdk8 .
1
2
2
# 修改tag,推送到 私服
docker tag jdk8 127.0.0.1:5000/leichu-jdk
docker push 127.0.0.1:5000/leichu-jdk
1
2
2
# Dockerfile 构建 tomcat
# Dockerfile
FROM 192.168.2.4:5000/leichu-jdk
MAINTAINER leichu "chulei926@126.com"
## 通过 下载安装包 方式安装
ADD apache-tomcat-8.5.49.tar.gz /
RUN cd / && mv apache-tomcat-8.5.49 tomcat && echo "#!/bin/bash" >> /bin/startTomcat && echo "sh /tomcat/bin/catalina.sh run" >> /bin/startTomcat && chmod +x /bin/startTomcat
EXPOSE 8080
WORKDIR /tomcat
CMD ["startTomcat"]
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# build.sh
#!/usr/bin/env bash
docker build -t 192.168.2.4:5000/leichu-tomcat .
1
2
2
# 修改tag,推送到 私服
$ docker push 192.168.2.4:5000/leichu-tomcat
1
# 启动测试
## -p 9999:8080 将docker内部的8080端口映射成外部的9999端口
$ docker run -itd -p 9999:8080 9a7475d438ee
## 浏览器访问 http://180.76.183.170:9999/
1
2
3
4
2
3
4
# Dockerfile 构建 elasticsearch 集群
基于 安装包 构建
# Dockerfile
FROM 127.0.0.1:5000/leichu-jdk
MAINTAINER leichu "chulei926@126.com"
## elasticsearch 默认不能使用root用户启动
RUN groupadd -r elasticsearch && useradd -r -g elasticsearch elasticsearch
## 创建 data 和 log 目录
RUN mkdir -p /mnt/elasticsearch/data
RUN mkdir -p /mnt/elasticsearch/logs
## data 和 log 目录的所有者改为 elasticsearch 用户
RUN chown -R elasticsearch. /mnt/*
ADD elasticsearch-7.5.0-linux-x86_64.tar.gz /elasticsearch
RUN cd / && mv elasticsearch-7.5.0 elasticsearch
RUN chmod +x /elasticsearch/bin/*
RUN ln -s /elasticsearch/bin/elasticsearch /usr/bin/elasticsearch
## /elasticsearch 目录的所有者改为 elasticsearch 用户
RUN chown -R elasticsearch. /elasticsearch
VOLUME /mnt/elasticsearch
EXPOSE 9200
EXPOSE 9300
ENV ES_HOME /elasticsearch
ENV PATH ${ES_HOME}/bin:$PATH
WORKDIR /elasticsearch
USER elasticsearch
RUN [ "elasticsearch" ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# build.sh
#!/usr/bin/env bash
docker build -t 127.0.0.1:5000/leichu-es .
1
2
2
# 启动测试
## 因为测试机内存太小,故上面执行 build.sh 时,会抛出 Cannot allocate memory 错误!
docker run --name es1 -p 9201:9200 -p 9301:9300 -v "$PWD/start/node1/elasticsearch.yml":/elasticsearch/config/elasticsearch.yml -v "/mnt/node1/data":/elasticsearch/data/ -v "/mnt/node1/logs":/elasticsearch/logs/ --ulimit nofile=65536:131072 -d elasticsearch
docker run --name es2 -p 9202:9200 -p 9302:9300 -v "$PWD/start/node2/elasticsearch.yml":/elasticsearch/config/elasticsearch.yml -v "/mnt/node2/data":/elasticsearch/data/ -v "/mnt/node2/logs":/elasticsearch/logs/ --ulimit nofile=65536:131072 -d elasticsearch
docker run --name es3 -p 9203:9200 -p 9303:9300 -v "$PWD/start/node3/elasticsearch.yml":/elasticsearch/config/elasticsearch.yml -v "/mnt/node3/data":/elasticsearch/data/ -v "/mnt/node3/logs":/elasticsearch/logs/ --ulimit nofile=65536:131072 -d elasticsearch
1
2
3
4
2
3
4
基于 docker-compose 构建
## TODO 内存不够,暂不考虑,docker-compose.yml 参考官网
1
2
2
# Docker 构建 puppeteer
https://pan.baidu.com/s/1V81AJX2kpfSMQ9581kDKEg (opens new window)
提取码:ppte
# Dockerfile
FROM centos:7
MAINTAINER leichu "chulei926@126.com"
#设置系统编码(处理中文乱码问题)
COPY fonts/* /usr/share/fonts/
RUN yum install -y mkfontscale fontconfig
RUN mkfontscale
RUN mkfontdir
# 安装 node
ADD node.tar.gz /usr/local
RUN ln -fs /usr/local/node/bin/node /usr/bin/node
RUN ln -fs /usr/local/node/bin/npm /usr/bin/npm
ENV NODE_HOME /usr/local/node
ENV PATH ${NODE_HOME}/bin:$PATH
# 安装 PM2
RUN npm install pm2@latest -g
RUN ln -fs /usr/local/node/bin/pm2 /usr/bin/pm2
# 配置 puppeteer
RUN yum install -y libatk* libxkbcommon* libgtk*
ADD ppte.tar.gz /usr/local
WORKDIR /usr/local/ppte
RUN echo "#!/bin/bash" >> /bin/startPte && echo "./start.sh && sh" >> /bin/startPte
RUN chmod +x /bin/startPte
EXPOSE 8888
CMD ["startPte"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 构建&推送&运行
docker build -t 192.168.195.95:5000/ppte .
1