Python 用于烧瓶的Docker多级&x2B;VueJs项目
我有一个项目,Flask作为后端,VueJS作为前端。希望将所有内容都放在容器中,容器将在生产服务器上运行 我需要安装所有依赖项(Python 用于烧瓶的Docker多级&x2B;VueJs项目,python,docker,vue.js,flask,docker-compose,Python,Docker,Vue.js,Flask,Docker Compose,我有一个项目,Flask作为后端,VueJS作为前端。希望将所有内容都放在容器中,容器将在生产服务器上运行 我需要安装所有依赖项(npm install)并从vue(npm run build)构建静态文件,以获取dist文件夹(包含HTML文件和资产),然后构建Flask项目:安装python、依赖项并在gunicorn上运行服务器。然后将我的dist文件夹复制到Flask目录 我阅读了有关多阶段的内容,并尝试将其结合起来,以下是我的Dockerfile代码: FROM python:3.7-
npm install
)并从vue(npm run build
)构建静态文件,以获取dist文件夹(包含HTML文件和资产),然后构建Flask项目:安装python、依赖项并在gunicorn上运行服务器。然后将我的dist文件夹复制到Flask目录
我阅读了有关多阶段的内容,并尝试将其结合起来,以下是我的Dockerfile代码:
FROM python:3.7-alpine as backend-builder
RUN mkdir /app
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
FROM node:lts-alpine as build-stage
RUN cd ..
RUN ls
RUN mkdir /frontend
WORKDIR /frontend
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM busybox
COPY --from=build-stage /frontend/dist /app/dist
RUN ls
它正在运行,但不要将dist复制到Flask目录
我的项目结构是:
project_folder
- app (python + flask files)
-- app.py
-- wsgi.py
-- requirements.txt
-- etc
- frontend (vuejs files, packages)
-- public
-- src
-- package.json
-- etc
- Dockerfile
我做错了什么?如何写Dockerfile,解决我的问题 来自busybox的
行创建了一个新的图像,它没有引用python图像。只需在构建python之前构建js,这样就可以在python构建完成时复制文件
FROM node:lts-alpine as build-stage
RUN cd ..
RUN ls
RUN mkdir /frontend
WORKDIR /frontend
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM python:3.7-alpine as backend-builder
RUN mkdir /app
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
COPY --from=build-stage /frontend/dist /app/dist
这些可能有助于构建Dockerfile,Dockerizing flask应用程序:以及研究Dockerizing Vue.js应用程序:您的Dockerfile可以得到改进/简化(特别是RUN cd..
是不可操作的,RUN mkdir/frontend
是不必要的,因为WORKDIR/frontend
暗示了这一点)