准备工作
- docker-ce 19.03
配置环境
为了之后方便部署以及方便分享,使用docker进行环境的搭建
配置blog-flask 镜像
文档结构
.
├── docker-compose.yml
└── flask
├── Dockerfile
├── pip.conf
├── requirements.txt
└── sources.list
- 编写pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
- 编写ubuntu镜像替换源
用的aliyun mirror
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
- 编写requirements.txt
flask
flask-sqlalchemy
psycopg2
- 编写dockerfile
FROM ubuntu:latest
# contact
LABEL AUTHOR="Stephen Ling"
LABEL EMAIL="[email protected]"
# port
EXPOSE 80
EXPOSE 443 # for https
# set workdir
WORKDIR /srv/myblog/
VOLUME [ "/srv/myblog/" ]
COPY ./requirements.txt /tmp/requirements.txt # project dependencies
COPY ./sources.list /etc/apt/sources.list # use mirror
COPY ./pip.conf /root/.pip/pip.conf # use mirror
RUN apt update && apt -y upgrade && apt install -y python3.8 python3-dev python3-pip postgresql-server-dev-12 && \
pip3 install -r /tmp/requirements.txt
CMD [ "/bin/bash" ]
编写docker-compose
用来方便启动多个容器
version: "3.7"
services:
blog:
container_name: blog-container-flask
image: myblog-flask:latest
ports:
- 8000:80
- 8001:443
command: tail -f /dev/null
volumes:
- "${BLOG_HOME}/blog-server/:/srv/myblog/"
db:
container_name: blog-container-postgres
image: postgres
ports:
- 5432:5432
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=123456789
- POSTGRES_DB=blog
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- "${BLOG_HOME}/postgres_volume:/var/lib/postgresql/data/pgdata"
配置完毕 启动查看
>> docker-compose up
>> docker ps
>> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5e710c890a4 postgres "docker-entrypoint.s…" 58 minutes ago Up 58 minutes 0.0.0.0:5432->5432/tcp blog-container-postgres
d521d78dbef4 myblog-flask:latest "tail -f /dev/null" 58 minutes ago Up 58 minutes 10080/tcp, 0.0.0.0:8000->80/tcp, 0.0.0.0:8001->443/tcp blog-container-flask