docker env file

在docker-compose 中使用以下方式导入.envfile。

  web:
    build: .
    restart: always
    working_dir: /deploy/mysite
    command: ./service_web.sh
    env_file:
      - .env  # environments

.env

DOCKER=1
HOME=/deploy

想用shell script动态获取环境的CPU count

如果直接在.env 中写如下的内容,会报语法错误:

CPU_NUM=$(cat /proc/cpuinfo |grep processor|wc -l)

所以,在web服务的command: ./service_web.sh脚本中export一个变量,并在gunicorn中使用:

#!/bin/bash
sleep 5
export CPU_NUM=$(cat /proc/cpuinfo |grep processor|wc -l)
python manage.py collectstatic -v0 --noinput
python manage.py migrate --noinput
/usr/local/bin/gunicorn -w $((2*$CPU_NUM+1)) -b unix:/deploy/running/handle/django-tutorial-server.sock mysite.wsgi:application --log-level info