《基于Kubernetes的容器云平台实战》——3.3.2 Dockerfile优化实例
3.3.2 Dockerfile优化实例
下面以Dockerfile内容为基础,按照检查项进行逐步优化。该Dockerfile的内容如下:
FROM RHEL
ADD . /mywebapp
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y tomcat ssh MySQL
RUN cd /app && npm install
CMD MySQL & sshd & npm start
1)编写.dockerignore文件。.dockerignore的作用和语法类似于.gitignore,用来忽略一些不需要的文件,这样可以有效加快镜像构建时间,同时减少Docker镜像的大小。示例如下:
.git/
2)容器只运行单个应用。
FROM RHEL
ADD . /mywebapp
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y tomcat #ssh MySQL
RUN cd /app && npm install
CMD MySQL & sshd & npm start
3)run指令合并。
FROM RHEL
ADD . /mywebapp
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y tomcat \ #ssh MySQL
&& cd /app && npm install
4)基础镜像的标签不要用latest。
FROM RHEL:7.4
ADD . /mywebapp
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y tomcat \ #ssh MySQL
&& cd /app && npm install
5)设置默认工作目录。
FROM RHEL:7.4
WORKDIR /mywebapp
ADD . /mywebapp
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y tomcat \ #ssh MySQL
&& cd /app && npm install
6)设置环境变量。
FROM RHEL:7.4
WORKDIR /mywebapp
ADD . /mywebapp
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y tomcat \ #ssh MySQL
ENV HOST=10.47.43.1 \
PORT=8080
- 点赞
- 收藏
- 关注作者
评论(0)