不爱贞子爱爽子
バキューン

1.docker安装 我安装的是docker desktop

安装完成后
$ docker -v
$ Docker version 26.0.0, build 2ae903e
同时也可以打开图形界面看

2.前端打包
配置Dockerfile 放在前端项目根目录
配置nginx.conf 放在前端项目根目录
---Dockerfile
# 设置Node.js版本
FROM node:20.12.2

# 设置容器工作目录
WORKDIR /app

# 复制package.json文件和package-lock.json文件到容器工作目录
COPY . /app

# 安装项目依赖
RUN yarn install

# 构建前端项目
RUN yarn build

# 使用nginx镜像作为基础镜像
FROM nginx:alpine

WORKDIR /app

# 替换nginx配置 将项目根目录nginx.conf 拷贝到nginx配置
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 将构建好的前端项目复制到nginx服务器的html目录下
COPY --from=0 /app/dist /usr/share/nginx/html

# 暴露80端口
EXPOSE 80

# 启动nginx,并且指定nginx在前台运行
CMD ["nginx", "-g", "daemon off;"]

---nginx.conf
server {
listen 80;
listen [::]:80;
server_name localhost;
## 这部分是vite配置了压缩的 没有的直接去掉
#开启gzip功能
gzip on;
#开启gzip静态压缩功能
gzip_static on;
#gzip缓存大小
gzip_buffers 4 16k;
#gzip http版本
gzip_http_version 1.1;
#gzip 压缩级别 1-10
gzip_comp_level 5;
#gzip 压缩类型
gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 是否在http header中添加Vary: Accept-Encoding,**一定要开启,不开启读取不到.gz结尾的压缩文件**
gzip_vary on;
## 这部分是vite配置了压缩的 没有的直接去掉
access_log /var/log/nginx/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;

# 新增下面这句,其他是默认nginx配置
# 解决部分前端框架的路由问题,在浏览器刷新报错404
#try_files $uri $uri/ /index.html;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

## 构建镜像 Dockerfile 同级执行
$ docker build -t web:1.0 .
它会按照顺序去执行命令 错误的话就会停止 常见错误目录不正确 文件没拷贝上 命令和package.json不对应
构建完成后会提示
View build details: docker-desktop://dashboard/build/default/default/blmwxek49rnabffvm8vq602mf
运行镜像
$ docker run --name web1.0 -d -p 8080:80 web:1.0
运行完则可以访问。
其中也可以通过图形化界面或者docker命令查看问题
docker ps -a
docker ps -a pid

### 获取容器的元数据
docker inspect

##
docker stats –no-stream

### 显示容器使用的系统资源,默认情况下,stats 命令会每隔1秒钟刷新一次输出的内容直到你按下ctrl + C
docker stats

3.flask打包
配置Dockerfile 放在项目根目录
配置requirements.txt 放在项目根目录
---app.py
app.run(host="0.0.0.0", port=5000) 设置此项保证外部可以访问
---Dockerfile
# 使用Python 3作为基础镜像
FROM python:3

# 设置 pip 镜像源为阿里云镜像
ENV PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/

# 设置镜像源不验证 SSL
ENV PIP_TRUSTED_HOST=mirrors.aliyun.com

# 设置工作目录
WORKDIR /app

# 复制项目文件到容器中
COPY . /app

# 安装项目依赖项
RUN pip install --no-cache-dir -r requirements.txt

# 设置环境变量
ENV FLASK_APP=app.py

# 定义容器启动命令 app.py host设置在里面
CMD [ "python", "app.py"]
---requirements.txt
flask==3.0.3
构建镜像
$ docker build -t flaskapitest:1.0 .
运行镜像
$ docker run --name flaskapitest -d -p 5555:5000 flaskapitest:1.0

图形化界面;

 

 

posted on 2024-05-09 17:25  不爱贞子爱爽子  阅读(60)  评论(0编辑  收藏  举报

! !