Docker 安装
温馨提示
此版本需要 Docker Engine 支持,请确保 Docker 相关服务正常。
此外,还需要 Docker Compose 支持(v1.29),请确保 docker-compose
相关服务正常。
命令行终端运行 docker --version
及 docker-compose --version
检查上述配置。
Docker Compose 脚本
项目根目录下 docker
目录中,包含 Docker 一键启动相关的配置脚本,
上述脚本将会:
- 拉取 baratsemet/ohurlshortener-admin ohUrlShortener 短链接系统管理端镜像
- 拉取 baratsemet/ohurlshortener-portal ohUrlShortener 短链接系统转向门户镜像
- 通过
docker/pull_build.yml
其他描述内容构建redis
和postgresql
镜像及服务,并对其运行状态做判断,等待缓存和数据库服务正常之后,再启动其他必要服务 (本地构建镜像请查阅local_build.yml
) - 构建名为
network_ohurlshortener
的虚拟网络供上述服务使用 - 开启本机
9091
、9092
端口分别应对ohUrlShortener-Portal
及ohUrlShortener-Admin
应用
其环境变量如下(亦可参照 docker/vars.env
文件):
# Environment Variables for docker-compose
# ohUrlShortenerAdmin
OH_ADMIN_PORT=9092
OH_ADMIN_VERSION=2.0
OH_ADMIN_CONTAINER_NAME=ohurlshortener_admin
# ohUrlShortenerPortal
OH_PORTAL_PORT=9091
OH_PORTAL_VERSION=2.0
OH_PORTAL_CONTAINER_NAME=ohurlshortener_portal
# Postgresql Vars
PG_VERSION=9.6
PG_CONTAINER_NAME=ohurlshortener_pg
PG_SUPER_USER=postgres
PG_SUPER_PWD=0DePm!oG_12Cz^kd_m
PG_LOCAL_PORT=55432
#Redis Vars
RD_VERSION=6.2.6
RD_CONTAINER_NAME=ohurlshortener_redis
RD_LOCAL_PORT=56379
完整 compose 内容如下:
version: '3'
services:
ohurlshortener-admin:
image: baratsemet/ohurlshortener-admin:${OH_ADMIN_VERSION}
container_name: ${OH_ADMIN_CONTAINER_NAME}
hostname: oh_admin
volumes:
- ../docker/docker_config.ini:/app/config.ini
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
ports:
- ${OH_ADMIN_PORT}:9092
networks:
- ohurlshortener
ohurlshortener-portal:
image: baratsemet/ohurlshortener-portal:${OH_PORTAL_VERSION}
container_name: ${OH_PORTAL_CONTAINER_NAME}
hostname: oh_portal
volumes:
- ../docker/docker_config.ini:/app/config.ini
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
ports:
- ${OH_PORTAL_PORT}:9091
networks:
- ohurlshortener
postgres:
image: postgres:${PG_VERSION}
container_name: ${PG_CONTAINER_NAME}
hostname: postgres
environment:
- POSTGRES_USER=${PG_SUPER_USER}
- POSTGRES_PASSWORD=${PG_SUPER_PWD}
- TZ=PRC
- PGTZ=PRC
volumes:
- ../structure.sql:/docker-entrypoint-initdb.d/001.sql
- ../docker/container-data/postgresql:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "psql", "-U","${PG_SUPER_USER}","-d","oh_url_shortener" ]
timeout: 10s
interval: 3s
retries: 10
networks:
- ohurlshortener
redis:
image: redis:${RD_VERSION}
container_name: ${RD_CONTAINER_NAME}
hostname: redis
healthcheck:
test: [ "CMD", "redis-cli","-p","6379"]
timeout: 10s
interval: 3s
retries: 10
networks:
- ohurlshortener
networks:
ohurlshortener:
driver: bridge
name: "network_ohurlshortener"
driver_opts:
com.docker.network.enable_ipv6: "true"
Docker 参数映射关系
-v {path_to_config_file}:/app/config.ini
配置文件
-p {local_port}:9091
启动端口