我可以使用以下代码在单个容器中成功创建和运行后端flask api和前端vue应用程序:
### Running the flask API in the backend #########
FROM python:3.6-slim as production
WORKDIR /usr/src/app
COPY requirements.txt ./backend/
COPY application.py ./backend/
RUN pip install -r /usr/src/app/backend/requirements.txt
EXPOSE 5000
CMD ["python", "/usr/src/app/backend/application.py"]
###########################################################
### Running the main vue.js app as the frontend ######
FROM node:lts-alpine
RUN npm install -g http-server
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# run the vue app & expose container port 8080 for the frontend
CMD [ "http-server", "dist" ]
EXPOSE 8080
###########################################################
但是,当我尝试在单个容器中组合它们时,只有vue应用程序在localhost:8080上运行,但它无法访问flask api输出,我认为该输出将在端口5000的容器中本地运行
### Running the flask API in the backend #########
FROM python:3.6-slim as production
WORKDIR /usr/src/app
COPY requirements.txt ./backend/
COPY application.py ./backend/
RUN pip install -r /usr/src/app/backend/requirements.txt
# EXPOSE 5000
CMD ["python", "/usr/src/app/backend/application.py"]
###########################################################
### Running the main vue.js app as the frontend ######
FROM node:lts-alpine
RUN npm install -g http-server
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# run the vue app & expose container port 8080 for the frontend
CMD [ "http-server", "dist" ]
EXPOSE 8080
###########################################################
想知道是否有一种方法可以在容器内运行 flask api而不旋转单独的容器?
1条答案
按热度按时间quhf5bfb1#
在dockerfile中,第二个
CMD
命令将覆盖上一个命令。查看此帖子以获取有关此主题的更多信息。在这种情况下,更好的方法是使用两个单独的docker文件(一个用于后端,一个用于前端),并使用docker compose同时启动它们。