PS: 已有容器镜像服务也适用,修改镜像仓库地址即可。
$ tree -L 3 ./f3s-docker-files./f3s-docker-files├── README.md ------ 说明文件├── DockerBuildImages.sh ------ 镜像构建脚本├── 0.base ------ 0.构建Base层各类系统镜像│ ├── alpine ------ 构建Base层alpine系统镜像│ │ └── Dockerfile│ └── centos-7.8 ------ 构建Base层Centos7.8系统镜像│ ├── Dockerfile│ └── centos-7.8.2003-x86_64-docker.tar.xz├─ 1.ops ------ 1.构建运维层各类镜像│ └── Dockerfile-alpine ------ 构建运维层alpine镜像├── 2.lang ------ 2.构建语言层各类镜像│ └── Dockerfile-alpine-kona ------ 语言层alpine-kona镜像└── 3.app ------ 3.构建应用层各类镜像├── jmeter│ ├── Dockerfile-jmeter-base ------ 构建jmeter-base镜像│ ├── Dockerfile-jmeter-grafana-reporter ------ 构建jmeter-grafana-reporter镜像│ ├── Dockerfile-jmeter-master ------ 构建jmeter-master镜像│ └── Dockerfile-jmeter-slave ------ 构建jmeter-slave镜像├── nginx│ ├── Dockerfile-alpine-nginx ------ 构建alpine-nginx镜像│ ├── default.conf│ └── nginx.conf└── skywalking└── Dockerfile-alpine-kona-skywalking ------ 构建alpine-kona-skywalking镜像
# buildFROM alpine:3.13ENV FROM alpine:3.13# Alpine 镜像中并没有包含 tzdata,所以无法直接通过环境变量 TZ 设置时区,因此需要安装 tzdata:ENV TZ=Asia/ShanghaiRUN echo 'http://mirrors.tencent.com/alpine/v3.13/main/' > /etc/apk/repositories \\&& echo 'http://mirrors.tencent.com/alpine/v3.13/community/' >> /etc/apk/repositories \\&& apk --no-cache add apache2-utils \\bind-tools \\bridge-utils \\busybox-extras \\curl \\ebtables \\ethtool \\fio \\fping \\iperf3 \\iproute2 \\iptables \\iputils \\ipvsadm \\jq \\lftp \\lsof \\mtr \\netcat-openbsd \\net-tools \\nmap \\procps \\psmisc \\rsync \\smartmontools \\strace \\sysstat \\tcpdump \\tree \\tzdata \\unzip \\util-linux \\wget \\zip \\&& echo "${TZ}" > /etc/timezone \\&& ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \\&& rm -rf /var/cache/apk/*ENV BUILD f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:v3.13# docker build -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:v3.13 .
cd $pwd/0.base/alpinedocker build -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:v3.13 -f Dockerfile .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:v3.13
# build# centos 7.8 官方 Dockerfile:https://github.com/CentOS/sig-cloud-instance-images/blob/CentOS-7.8.2003-x86_64/docker/Dockerfile# centos 7.8 官方包: wget https://raw.githubusercontent.com/CentOS/sig-cloud-instance-images/CentOS-7.8.2003-x86_64/docker/centos-7.8.2003-x86_64-docker.tar.xzFROM scratchADD centos-7.8.2003-x86_64-docker.tar.xz /LABEL name="CentOS Base Image" \\vendor="CentOS" \\license="GPLv2" \\build-date="20200504"# 增加一些小工具,并修改时区RUN set -ex \\&& yum install -y wget \\&& rm -rf /etc/yum.repos.d/CentOS-* \\# 添加Tencent yum 源&& wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo \\&& yum fs filter documentation \\&& yum install -y atop \\bind-utils \\curl \\dstat \\ebtables \\ethtool \\fping \\htop \\iftop \\iproute \\jq \\less \\lsof \\mtr \\nc \\net-tools \\nmap-ncat \\perf \\psmisc \\strace \\sysstat \\tcpdump \\telnet \\tree \\unzip \\wget \\which \\zip \\ca-certificates \\&& rm -rf /etc/localtime \\&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \\# Install dumb-init&& wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64 \\&& chmod +x /usr/local/bin/dumb-init \\# Install gosu grab gosu for easy step-down from root# https://github.com/tianon/gosu/releases&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.13/gosu-amd64" \\&& chmod +x /usr/local/bin/gosu \\&& gosu nobody true \\# 安装中文语言包,解决中文乱码问题,vi 乱码需要这里解决&& yum -y install kde-l10n-Chinese glibc-common \\&& localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 \\&& export LC_ALL=zh_CN.utf8 \\&& yum clean all \\&& rm -rf /tmp/* \\&& rm -rf /var/lib/yum/* \\&& rm -rf /var/cache/yum# 解决 less 乱码问题ENV LESSCHARSET utf-8# 设置语言环境变量ENV LANG=en_US.UTF-8# 不加这句则 kubernetes 中的 stdin: true 和 tty: true 不生效CMD ["/bin/bash"]ENV BUILD f3s-docker-file.tencentcloudcr.com/f3s-tcr/centos:v7.8# docker build -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/centos:v7.8 .
cd $pwd/0.base/centos-7.8docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/centos:v7.8 -f Dockerfile .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/centos:v7.8# To test run: docker run --name test -it --rm f3s-docker-file.tencentcloudcr.com/f3s-tcr/centos:v7.8 uname -a# docker export <container-id> | docker import f3s-docker-file.tencentcloudcr.com/f3s-tcr/centos:v7.8# quick interative termnal: docker run -it --entrypoint=sh f3s-docker-file.tencentcloudcr.com/f3s-tcr/centos:v7.8 sh
# buildFROM f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:v3.13MAINTAINER westzhaoENV LANG=C.UTF-8# 下载运维工具RUN apk --no-progress --purge --no-cache add --upgrade wget \\curl \\mysql-client \\busybox \\busybox-extras \\bash \\bash-doc \\bash-completion \\tzdata \\vim \\unzip && \\# 下载glibc支持jdk、解决中文支持问题 && \\wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \\wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-2.33-r0.apk && \\wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-bin-2.33-r0.apk && \\wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-i18n-2.33-r0.apk && \\apk add glibc-2.33-r0.apk glibc-bin-2.33-r0.apk glibc-i18n-2.33-r0.apk && \\rm glibc-2.33-r0.apk glibc-bin-2.33-r0.apk glibc-i18n-2.33-r0.apk && \\/usr/glibc-compat/bin/localedef -i en_US -f UTF-8 C.UTF-8 && \\echo "export LANG=$LANG" > /etc/profile.d/locale.sh && \\# 修改时区mkdir -p /share/zoneinfo/Asia/ && \\mkdir -p /etc/zoneinfo/Asia/ && \\cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \\cp /usr/share/zoneinfo/Asia/Shanghai /share/zoneinfo/Asia/Shanghai && \\cp /usr/share/zoneinfo/Asia/Shanghai /etc/zoneinfo/Asia/Shanghai && \\echo "Asia/Shanghai" > /etc/timezone && \\apk del tzdata && \\# 删除apk缓存 && \\rm -rf /var/cache/apk/*
docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:latest -f ./1.ops/Dockerfile-alpine .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:latest# To test run: docker run --name test -it --rm f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:latest sh $(java -version)# docker export <container-id> | docker import f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:latest# quick interative termnal: docker run -it --entrypoint=sh f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:latest sh
# buildFROM f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine:latestMAINTAINER westzhaoENV LANG=C.UTF-8# 通过 wget 下载 Kona 安装包 && \\RUN cd /opt && \\wget https://github.com/Tencent/TencentKona-8/releases/download/8.0.5-GA/TencentKona8.0.5.b12_jdk_linux-x86_64_8u282.tar.gz && \\tar -xvf TencentKona8.0.5.b12_jdk_linux-x86_64_8u282.tar.gz && \\rm TencentKona8.0.5.b12_jdk_linux-x86_64_8u282.tar.gz && \\ln -nfs /opt/TencentKona-8.0.5-282 /opt/jdk && \\# 裁剪jdk未使用资源 && \\rm /opt/jdk/release && \\rm /opt/jdk/THIRD_PARTY_README && \\rm /opt/jdk/LICENSE && \\rm /opt/jdk/ASSEMBLY_EXCEPTION && \\rm -rf /opt/jdk/sample/ && \\rm -rf /opt/jdk/demo/ && \\rm -rf /opt/jdk/src.zip && \\rm -rf /opt/jdk/man/ && \\rm -rf /opt/jdk/lib/missioncontrol && \\rm -rf /opt/jdk/lib/visualvm && \\rm -rf /opt/jdk/lib/ant-javafx.jar && \\rm -rf /opt/jdk/lib/javafx-mx.jar && \\rm -rf /opt/jdk/lib/jconsole.jar && \\rm -rf /opt/jdk/jre/lib/amd64/libawt_xawt.so && \\rm -rf /opt/jdk/jre/lib/amd64/libjavafx_font_freetype.so && \\rm -rf /opt/jdk/jre/lib/amd64/libjavafx_font_pango.so && \\rm -rf /opt/jdk/jre/lib/amd64/libjavafx_font.so && \\rm -rf /opt/jdk/jre/lib/amd64/libjavafx_font_t2k.so && \\rm -rf /opt/jdk/jre/lib/amd64/libjavafx_iio.so && \\rm -rf /opt/jdk/jre/lib/amd64/libjfxwebkit.so && \\rm -rf /opt/jdk/jre/lib/desktop && \\rm -rf /opt/jdk/jre/lib/ext/jfxrt.jar && \\rm -rf /opt/jdk/jre/lib/fonts && \\rm -rf /opt/jdk/jre/lib/locale/de && \\rm -rf /opt/jdk/jre/lib/locale/fr && \\rm -rf /opt/jdk/jre/lib/locale/it && \\rm -rf /opt/jdk/jre/lib/locale/ja && \\rm -rf /opt/jdk/jre/lib/locale/ko && \\rm -rf /opt/jdk/jre/lib/locale/ko.UTF-8 && \\rm -rf /opt/jdk/jre/lib/locale/pt_BR && \\rm -rf /opt/jdk/jre/lib/locale/sv && \\rm -rf /opt/jdk/jre/lib/locale/zh_HK.BIG5HK && \\rm -rf /opt/jdk/jre/lib/locale/zh_TW && \\rm -rf /opt/jdk/jre/lib/locale/zh_TW.BIG5 && \\rm -rf /opt/jdk/jre/lib/oblique-fonts && \\rm -rf /opt/jdk/jre/lib/deploy.jar && \\rm -rf /opt/jdk/jre/lib/locale/# JAVA_HOMEENV JAVA_HOME=/opt/jdkENV CLASSPATH=.:$JAVA_HOME/lib/ENV PATH=$JAVA_HOME/bin:$PATH
docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona:latest -f ./2.lang/Dockerfile-alpine-kona .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona:latest# To test run: docker run --name test -it --rm f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona:latest sh $(java -version)# docker export <container-id> | docker import f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona:latest# quick interative termnal: docker run -it --entrypoint=sh f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona:latest sh
# buildFROM f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona:latestMAINTAINER westzhaoENV LANG=C.UTF-8# 下载运维工具RUN mkdir /3.app && \\wget -q -O /3.app/apache-skywalking-apm-8.5.0.tar.gz https://archive.apache.org/dist/skywalking/8.5.0/apache-skywalking-apm-8.5.0.tar.gz && \\tar zxf /3.app/apache-skywalking-apm-8.5.0.tar.gz -C /3.app && \\mv /3.app/apache-skywalking-apm-bin/agent /3.app/skywalking && \\rm -rf /3.app/apache-skywalking-apm-8.5.0.tar.gz && \\rm -rf /3.app/apache-skywalking-apm-bin/# JAVA_HOMEENV JAVA_HOME=/opt/jdkENV CLASSPATH=.:$JAVA_HOME/lib/ENV PATH=$JAVA_HOME/bin:$PATH
docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona-skywalking:latest -f ./3.app/skywalking/Dockerfile-alpine-kona-skywalking .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona-skywalking:latest# To test run: docker run --name test -it --rm f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona-skywalking:latest sh $(java -version)# docker export <container-id> | docker import f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona-skywalking:latest# quick interative termnal: docker run -it --entrypoint=sh f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona-skywalking:latest sh
# buildFROM f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona:latestMAINTAINER westzhaoARG JMETER_VERSION=5.4.1# 下载jmeterRUN mkdir /jmeter && \\cd /jmeter && \\wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-$JMETER_VERSION.tgz && \\tar -xzf apache-jmeter-$JMETER_VERSION.tgz && \\rm apache-jmeter-$JMETER_VERSION.tgz && \\# 下载JMeterPlugins-Standard && \\cd /jmeter/apache-jmeter-$JMETER_VERSION/ && \\wget -q -O /tmp/JMeterPlugins-Standard-1.4.0.zip https://jmeter-plugins.org/downloads/file/JMeterPlugins-Standard-1.4.0.zip && \\unzip -n /tmp/JMeterPlugins-Standard-1.4.0.zip && \\rm /tmp/JMeterPlugins-Standard-1.4.0.zip && \\# 下载pepper-box && \\wget -q -O /jmeter/apache-jmeter-$JMETER_VERSION/lib/ext/pepper-box-1.0.jar https://github.com/raladev/load/blob/master/JARs/pepper-box-1.0.jar?raw=true && \\# 下载bzm-parallel && \\cd /jmeter/apache-jmeter-$JMETER_VERSION/ && \\wget -q -O /tmp/bzm-parallel-0.7.zip https://jmeter-plugins.org/files/packages/bzm-parallel-0.7.zip && \\unzip -n /tmp/bzm-parallel-0.7.zip && \\rm /tmp/bzm-parallel-0.7.zipENV JMETER_HOME /jmeter/apache-jmeter-$JMETER_VERSION/ENV PATH $JMETER_HOME/bin:$PATH
docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-base:latest -f ./3.app/jmeter/Dockerfile-jmeter-base .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-base:latest
# buildFROM f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-base:latestMAINTAINER westzhaoEXPOSE 60000
docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-master:latest -f ./3.app/jmeter/Dockerfile-jmeter-master .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-master:latest
# buildFROM f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-base:latestMAINTAINER westzhaoEXPOSE 1099 50000ENTRYPOINT $JMETER_HOME/bin/jmeter-server \\-Dserver.rmi.localport=50000 \\-Dserver_port=1099 \\-Jserver.rmi.ssl.disable=true
docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-slave:latest -f ./3.app/jmeter/Dockerfile-jmeter-slave .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-slave:latest
# build# 多阶构建FROM golang:1.14.7-alpine3.12 AS buildMAINTAINER westzhao# 下载运维/编译工具WORKDIR /go/src/${owner:-github.com/8710925}/reporter# ADD . .# RUN go install -v github.com/8710925/reporter/cmd/grafana-reporterRUN apk --no-progress --purge --no-cache add --upgrade git && \\# 编译grafana-reportergit clone https://${owner:-github.com/8710925}/reporter . \\&& go install -v github.com/8710925/reporter/cmd/grafana-reporter# create grafana reporter imageFROM alpine:3.12COPY --from=build /go/src/${owner:-github.com/8710925}/reporter/util/texlive.profile /COPY --from=build /go/src/${owner:-github.com/8710925}/reporter/util/SIMKAI.ttf /usr/share/fonts/west/RUN apk --no-progress --purge --no-cache add --upgrade wget \\curl \\fontconfig \\unzip \\tzdata \\perl-switch && \\wget -qO- \\"https://github.com/yihui/tinytex/raw/master/tools/install-unx.sh" | \\sh -s - --admin --no-path \\&& mv ~/.TinyTeX /opt/TinyTeX \\&& /opt/TinyTeX/bin/*/tlmgr path add \\&& tlmgr path add \\&& chown -R root:adm /opt/TinyTeX \\&& chmod -R g+w /opt/TinyTeX \\&& chmod -R g+wx /opt/TinyTeX/bin \\&& tlmgr update --self --repository http://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet \\&& tlmgr install epstopdf-pkg ctex everyshi everysel euenc \\# 修改时区&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \\&& echo "Asia/Shanghai" > /etc/timezone \\&& apk del tzdata \\# Cleanup&& fmtutil-sys --all \\&& texhash \\&& mktexlsr \\&& apk del --purge -qq \\&& rm -rf /var/lib/apt/lists/*COPY --from=build /go/bin/grafana-reporter /usr/local/binENTRYPOINT [ "/usr/local/bin/grafana-reporter","-ip","jmeter-grafana:3000" ]
docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-grafana-reporter:latest -f ./3.app/jmeter/Dockerfile-jmeter-grafana-reporter .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/jmeter-grafana-reporter:latest
# buildFROM f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-kona:latestMAINTAINER westzhaoENV LANG=C.UTF-8# 下载运维工具RUN apk --no-progress --purge --no-cache add --upgrade nginx && \\# 删除apk缓存 && \\rm -rf /var/cache/apk/*COPY ./3.app/nginx/default.conf /etc/nginx/http.d/default.confCOPY ./3.app/nginx/nginx.conf /etc/nginx/nginx.confEXPOSE 80 443CMD ["/usr/sbin/nginx", "-g", "daemon off;", "-c", "/etc/nginx/nginx.conf"]
docker build --no-cache -t f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-nginx:latest -f ./3.app/nginx/Dockerfile-alpine-nginx .docker push f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-nginx:latest# To test run: docker run --name test -it --rm -p 8888:80 f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-nginx:latest nginx -v# docker export <container-id> | docker import f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-nginx:latest# quick interative termnal: docker run -it --entrypoint=sh f3s-docker-file.tencentcloudcr.com/f3s-tcr/alpine-nginx:latest sh
本页内容是否解决了您的问题?