首页 > 其他分享 >docker打包前端项目/flask项目

docker打包前端项目/flask项目

时间:2024-05-09 17:37:10浏览次数:17  
标签:项目 flask app nginx html gzip 镜像 docker

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

图形化界面;

 

 

标签:项目,flask,app,nginx,html,gzip,镜像,docker
From: https://www.cnblogs.com/shuangzikun/p/18182716

相关文章

  • docker的部署
    Docker安装docker环境查看bear@bear:~$cat/etc/os-releaseNAME="Ubuntu"VERSION="20.04.3LTS(FocalFossa)"ID=ubuntuID_LIKE=debianPRETTY_NAME="Ubuntu20.04.3LTS"VERSION_ID="20.04"HOME_URL="https://www.ubunt......
  • docker_test
    WelcometoHexo!Thisisyourveryfirstpost.Checkdocumentationformoreinfo.IfyougetanyproblemswhenusingHexo,youcanfindtheanswerintroubleshootingoryoucanaskmeonGitHub.QuickStartCreateanewpost$hexonew"MyNewPost&q......
  • Docker in Docker for wandb agent
    IntroLikeportainer,toisolatethewand-agentruntimeenvironmentinsidecontainer(dockernize)withoutlosingtheabilitytofullyaccesshostresources(commencedockerrun),wemustexposethehostdockersockettothewandb-agentcontainer.dockerrun......
  • 对于Docker和Podman的一点使用经验
    前言:本文会以多个实际的线上例子,分享自己对于Docker和Podman的一点使用经验及踩过的坑,希望对读者有一点帮助。本文bash脚本初步加工后可直接使用(兼容mac和linux系统),对于关键点会有注重说明,但是对于一些细节需要读者自行去查阅相关文档,这里不会具体展开。一、部署Apollo1、docke......
  • .net core web项目在docker中简单部署方法
    #这是我的dockerFile文件FROMmcr.microsoft.com/dotnet/aspnet:8.0ASbaseUSERappWORKDIR/appEXPOSE8080EXPOSE8081#设置入口点CMD["dotnet","ImageCreate.dll"]#ImageCreate.dll代表你的应用 docker-compose.yml version:'3'servic......
  • pybuilder:Python项目构建、测试、文档、发布
    Github地址:https://github.com/pybuilder/pybuilder在Python项目开发中,良好的构建和自动化流程是非常重要的。PyBuilder是一个用于构建Python项目的工具,它提供了简单易用的方式来定义和管理项目的构建过程,包括依赖管理、测试、代码质量检查等。本文将深入探讨PyBuilder库的使用......
  • 项目实战 TS
    项目实战TS通用技巧新手先any再填坑,老手先定义数据结构写逻辑遇到新场景,没把握快速,先用any再填坑,填坑的过程也是TS技能满满提升的过程。TS发现潜在问题1)复杂逻辑,JS一口气写完,调试没找到毛病,加上TS可以找到。2)提测质量,提测前建议review一下,为避免枯燥可......
  • windows下源码编译CMake项目
    Cmake项目1、安装路径和源码安装包下载地址:https://cmake.org/download/源码地址https://github.com/Kitware/CMake2、编译源码下载后会有一个CMake-master的文件夹在里面新建一个build目录打开cmake-gui可执行文件出现cmake的界面,设置source路径为刚刚的CMake-......
  • docker搭建私人git仓库
    在安装完Docker后,可以在终端中运行以下命令来下载GogsDocker镜像:dockerpullgogs/gogsdockerrun--name=gogs-p10022:22-p10880:3000-v/var/gogs:/datagogs/gogs解释:dockerrun#通过Docker运行--name=gogs#取个名字叫gogs-p10022:22#......
  • docker安装xxljob
    dockersearchxxl-jobdockerpullxuxueli/xxl-job-admin:2.4.0dockerrun-d\-p8088:8088\-v/tool/xxl-job/logs:/data/applogs\-v/tool/xxl-job/application.properties:/xxl-job/xxl-job-admin/src/main/resources/application.propert......