Dockerfile

FROM python:3.6.4

# 设置工作目录
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# 添加依赖(利用Docker 的缓存)
ADD ./requirements.txt /usr/src/app/requirements.txt

# 安装依赖
RUN pip install -r requirements.txt

# 添加应用
ADD . /usr/src/app

# 运行服务
CMD python manage.py runserver -h 0.0.0.0

docker-compose.yml:

version: '2.1'

services:
  users-service:
    container_name: users-service
    build: .
    volumes:
      - '.:/usr/src/app'
    ports:
      - 5001:5000  # 端口暴露(主机端口:容器端口)

构建镜像:

docker-compose build

构建完成后,启动容器:

docker-compose up -d

在docker-compose.yml文件中增加一个环境变量,用来加载开发环境的配置信息:

version: '2.1'

services:
  users-service:
    container_name: users-service
    build: .
    volumes:
    - '.:/usr/src/app'
    ports:
    - 5001:5000 # 端口暴露(主机端口:容器端口)
    environment:
    - APP_SETTINGS=project.config.DevelopmentConfig

更新proejct/init.py文件,从环境变量获取应用的配置信息:

import os
from flask import Flask, jsonify

# 初始化app
app = Flask(__name__)
# 环境配置
app_settings = os.getenv('APP_SETTINGS')
app.config.from_object(app_settings)

@app.route('/ping', methods=['GET'])
def ping_pong():
    return jsonify({
        'status': 'success',
        'message': 'pong!'
    })

更新容器:

docker-compose up -d

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code