docker compose 一键启动redis、postgresql、nginx、tomcat

64 阅读1分钟

记录下docker-compose.yml文件的配置

version: "1.0"

services:
    # 先docker run 启动临时容器,拷贝容器内的对应文件或文件夹到宿主机的对应位置,然后再docker compose up -d启动
    #        docker run -itd --name openresty -p 80:80  openresty/openresty
    #        mkdir -p /home/opt/docker/openresty/nginx/conf
    #        mkdir -p /home/opt/docker/openresty/nginx/conf.d
    #        mkdir -p /home/opt/docker/openresty/nginx/html
    #        mkdir -p /home/opt/docker/openresty/nginx/logs
    #        mkdir -p /home/opt/docker/openresty/nginx/lua
    #        docker cp openresty:/usr/local/openresty/nginx/conf/nginx.conf /home/opt/docker/openresty/nginx/conf/nginx.conf
    #        docker cp openresty:/etc/nginx/conf.d/default.conf /home/opt/docker/openresty/nginx/conf.d/default.conf
    #        docker cp openresty:/usr/local/openresty/nginx/html/index.html /home/opt/docker/openresty/nginx/html/index.html
    #        docker stop openresty
    #        docker rm openresty
    nginx:
        container_name: nginx
        image: openresty/openresty
        privilege: true
        restart: always
        ports:
            - "80:80"
        volumes:
            - /home/opt/openresty/nginx/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf
            - /home/docker/openresty/nginx/conf.d:/etc/nginx/conf.d
            - /home/docker/openresty/nginx/html:/usr/local/openresty/nginx/html
            - /home/docker/openresty/nginx/logs:/usr/local/openresty/nginx/logs
            - /home/docker/openresty/nginx/lua:/usr/local/openresty/nginx/lua
        networks:
            - docker_custom_network
    postgresql:
        container_name: postgresql
        image: postgres:9.6
        privilege: true
        restart: always
        ports:
            - "5432:5432"
        environment:
            POSTGRES_USER: admin
            POSTGRES_PASSWORD: 123456
            TZ: Asia/Shanghai
        volumes:
            - /home/docker/postgresql/data:/var/lib/postgresql/9.6/main
    # 在宿主机对应位置内放置配置好的redis.conf
    redis:
        container_name: redis
        image: redis:5
        privilege: true
        restart: always
        ports:
            - "6379:6379"
        volumes:
            - /home/docker/redis/data:/data
            - /home/docker/redis/redis.conf:/etc/redis/redis.conf
            - /home/docker/redis/redis.log:/docker/redis/redis.log
        command: redis-server /etc/redis/redis.conf --appendonly yes
    tomcat:
        container_name: tomcat
        image: tomcat:9.0-jdk8-temurin-focal
        privilege: true
        restart: always
        ports:
            - "8080:8080"
        depends_on:
            - postgresql
            - redis
        environment:
            TZ: Asia/Shanghai
        volumes:
            - /home/docker/tomcat/logs:/usr/local/tomcat/logs
            - /home/docker/tomcat/webapps:/usr/local/tomcat/webapps
        networks:
            - docker_custom_network

networks:
    docker_custom_network:
        driver: bridge
        ipam:
            config:
                - subnet: 10.123.0.0/24
                  gateway: 10.123.0.1
                  ip_range: 10.123.0.128/25