CodeGym /课程 /Docker SELF /为每个服务创建Dockerfile

为每个服务创建Dockerfile

Docker SELF
第 23 级 , 课程 2
可用

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执行了以下步骤:

  1. 使用基础镜像node:14
  2. 设置工作目录/app
  3. 复制文件package.jsonpackage-lock.json
  4. 使用npm install安装依赖。
  5. 将项目所有文件复制到工作目录。
  6. 打开端口3000以访问应用程序。
  7. 使用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 执行以下步骤:

  1. 使用基础镜像 python:3.12
  2. 设置工作目录 /app
  3. 复制文件 requirements.txt
  4. 通过 pip install 安装依赖。
  5. 将所有项目文件复制到工作目录。
  6. 开放端口 5000 以便访问应用。
  7. 通过 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 检查后端是否正常运行。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION