目录
[Docker Dockerfile](#Docker Dockerfile)
Docker Dockerfile
Dockerfile 是一个用来构建镜像的文件,内容包含了一 条条构建镜像所需的指令和说明。
bash
FROM nginx
RUN echo '这是一个本地构建的nginx镜像' >
/usr/share/nginx/html/index.html
FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。
RUN:用于执行后面跟着的命令行命令。有以下俩种格式:
shell 格式:RUN <命令行命令>
<命令行命令>等同于,在终端操作的 shell 命 令。
exec 格式:RUN ["可执行文件", "参数1", "参数2"]
例如:
RUN ["./test.php", "dev", "offline"]
等价于 RUN ./test.php dev offline
注意:Dockerfile 的指令每执行一次都会在 docker 上新 建一层。所以过多无意义的层,会造成镜像膨胀过大。 例如:
FROM ubuntu
run apt-get update || apt-get update #两次
重复apt-get update 防止更新失败
run apt-get install iputils-ping
run ping www.baidu.com
以上执行会创建 3 层镜像。可简化为以下格式:
FROM ubuntu run
apt-get update || apt-get update \
&& apt-get install iputils-ping \
&& ping www.baidu.com
SpringBoot应用构建
将SpringBoot jar包与Dockerfile放在一起构建。
Dockerfile:
bash
FROM openjdk:11
VOLUME /tmp
expose 3000 #expose 暴露端口号
COPY *.jar /opt/app.jar
ENTRYPOINT ["java","-jar","/opt/app.jar"]
编译:
bash
docker build -t app .
-t app 指编译后的镜像文件
批量编译:build.bat文件
bash
docker build -t erp:1.0 -f ./Dockerfile ../by-main/target
docker images
@pause
Vue前端项目打包
编译打包
bash
pnpm build # npm run build
nginx的配置文件default.conf
bash
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
location /api/ {
add_header 'Access-ControlAllow-Origin' '*';
add_header 'Access-ControlAllow-Methods' 'POST,GET,OPTIONS';
add_header 'Access-ControlAllow-Headers' 'Authorization'; #跨域设置
proxy_pass
http://123.57.206.19:8085;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
dockerfile
bash
FROM nginx
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
COPY dist/ /usr/share/nginx/html/
构建镜像
bash
docker build -t web:v1 .
运行
bash
docker run -it -p 8086:80 web:v1