我有一个Vite React应用程序,它有一个Flask API,通过docker-compose在Docker中使用WSL 2运行。但是现在我必须手动运行这些命令才能在浏览器中访问我的React应用程序:
docker exec -it vite_docker sh
npm i && npm run dev
字符串
我可以把这些命令放在哪里,这样当docker-compose正在做它的事情时,它们会自动运行?
docker-compose.yml
version: "3.8"
services:
vite_react:
image: node:alpine
container_name: vite_react
entrypoint: /bin/sh
ports:
- 3000:3000
working_dir: /srv/app
volumes:
- type: bind
source: ./ML-Flask-React
target: /srv/app
tty: true
flask_app:
build: ./ML-Flask-API
container_name: flask_app
ports:
- 5000:5000
depends_on:
- redis
redis:
image: redis:alpine
型
Dockerfile Flask:
FROM python:3
WORKDIR /app
RUN pip install --upgrade pip
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD [ "python", "app.py" ]
型
React应用程序没有Dockerfile。
2条答案
按热度按时间dgiusagp1#
构建自己的Docker镜像来.
1.安装依赖项
1.启动时执行相应的命令
例如
字符串
然后在撰写服务中使用此功能
型
有关匿名
/srv/app/node_modules
卷装载,请参见this post。我将文件命名为
Dockerfile.development
,因为您很可能有一个生产构建Dockerfile
,而您不想使用它来运行开发服务器zynd9foi2#
您可以在Docker文件的末尾指定
ENTRYPOINT npm run dev
。这将作为应用程序的主要函数或命令。每当执行Docker镜像时,它都会被执行。您可以在ENTRYPOINT了解更多信息