3.1 为前端创建Dockerfile (ReactJS)
在这一步中,我们会为多容器应用程序的三个服务创建各自的Dockerfile:ReactJS前端、Python (Flask)后台,和PostgreSQL数据库。Dockerfile定义了为每个服务创建Docker镜像的指令。
在frontend目录中创建Dockerfile文件:
Terminal
cd frontend
touch Dockerfile
前端的Dockerfile内容:
Terminal
# 使用基础镜像node
FROM node:14
# 设置工作目录
WORKDIR /app
# 复制package.json和package-lock.json用于安装依赖
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制项目的其他文件
COPY . .
# 设置端口3000
EXPOSE 3000
# 启动应用程序
CMD ["npm", "start"]
这个Dockerfile执行了以下步骤:
- 使用基础镜像
node:14
。 - 设置工作目录
/app
。 - 复制文件
package.json
和package-lock.json
。 - 使用
npm install
安装依赖。 - 将项目所有文件复制到工作目录。
- 打开端口
3000
以访问应用程序。 - 使用
npm start
启动应用程序。
3.2 为后端 (Flask) 创建 Dockerfile
在 backend 目录下创建 Dockerfile 文件:
Terminal
cd backend
touch Dockerfile
后端 Dockerfile 的内容:
dockerfile
# 使用基础镜像 python
FROM python:3.12
# 设置工作目录
WORKDIR /app
# 复制 requirements.txt 用于安装依赖
COPY requirements.txt ./
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 复制项目的其他文件
COPY . .
# 设置端口 5000
EXPOSE 5000
# 启动应用
CMD ["python", "run.py"]
这个 Dockerfile 执行以下步骤:
- 使用基础镜像
python:3.12
。 - 设置工作目录
/app
。 - 复制文件
requirements.txt
。 - 通过
pip install
安装依赖。 - 将所有项目文件复制到工作目录。
- 开放端口
5000
以便访问应用。 - 通过
python run.py
启动应用。
3.3 为数据库 (PostgreSQL) 创建 Dockerfile
对于数据库PostgreSQL,我们会用官方镜像,所以不需要自己创建Dockerfile。相反,我们会通过 docker-compose.yml
配置PostgreSQL。
3.4 构建和测试 Docker 镜像
在为前端和后端创建 Dockerfile 之后,重要的是测试它们的构建。
构建前端的 Docker 镜像:
Terminal
cd frontend
docker build -t task_management_frontend .
构建后端的 Docker 镜像:
Terminal
cd ../backend
docker build -t task_management_backend .
检查容器是否正常运行:
运行前端容器:
Terminal
docker run -p 3000:3000 task_management_frontend
运行后端容器:
Terminal
docker run -p 5000:5000 task_management_backend
打开地址 http://localhost:3000 检查前端是否正常运行,打开 http://localhost:5000 检查后端是否正常运行。
GO TO FULL VERSION