我有一个项目,包含 2 个前端应用程序(React)、1 个后端应用程序(Node)、mongodb 和 redis。
我的项目文件夹是这样的
_> client
|_> Dockerfile // Dockerfile for first react app
_> panel
|_> Dockerfile // Dockerfile for seconde react app
_> mongo
|_> Dockerfile // It contains initial datas for database
_> server
|_> Dockerfile // Docker file for nodejs backend
_> docker-compose.yml
每个项目文件夹下还有package.json等文件夹,但我没有详细介绍
我的 docker-compose 文件是这样的
version: '3'
services:
testproject-client:
container_name: testproject-client
build: ./client
image: bk52/testproject-client:latest
ports:
- 9200:5173
depends_on:
- testproject-server
testproject-panel:
container_name: testproject-panel
build: ./panel
image: bk52/testproject-panel:latest
ports:
- 9400:5174
depends_on:
- testproject-server
testproject-server:
container_name: testproject-server
build:
context: ./server
dockerfile: Dockerfile
image: bk52/testproject-server:latest
ports:
- 9600:9600
depends_on:
- testproject-mongo
- testproject-redis
testproject-mongo:
container_name: testproject-mongo
build: ./mongo
environment:
MONGO_INITDB_ROOT_USERNAME: my_test_user
MONGO_INITDB_ROOT_PASSWORD: my_test_password
MONGO_INITDB_DATABASE: my-test-database
ports:
- 27018:27017
volumes:
- testproject-data:/data/db
testproject-redis:
container_name: testproject-redis
image: 'redis'
ports:
- 6379:6379
volumes:
testproject-data:
项目使用 docker-compose 在本地运行成功。为了使项目成功运行,必须安装所有组件(mongo、redis、后端和两个前端应用程序)。
我命名了后端和前端图像并将它们上传到 docker-hub。
当我从 Docker Hub 拉取这些镜像时,Mongo 和 Redis 不会自动加载。它不会为 Mongodb 创建包含初始数据的表。此外,它不会在 docker-compose 中执行必要的卷和端口映射。
有没有一种方法或途径可以让我将这个项目推送到docker hub或立即将其拉到另一个环境?
谢谢
当您从 Docker Hub 拉取 Docker 映像时,请务必注意,映像本身仅包含相应软件(MongoDB、Redis 等)的基本安装。如果您需要特定的配置、初始数据、卷映射或端口映射,则必须在 docker-compose.yml 文件或 Docker run 命令中进行设置。将服务添加为 mango:latest....它将起作用.!!!