专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

docker-compose.yml

使用时,注意各services启动配置文件与此文件路径对应

version: '3.3'  # cocker compose版本号
# 可以使用当前目录下的 .env 文件中的变量
# 带变量文件启动命令:docker-compose  --env-file=dk.env up -d

services:

  postgres:
    container_name: pgsql #生成的容器名称。【后面的pgadmin4连接时使用此名称】
    image: postgres:12.3-alpine
    privileged: true  #解决权限
    ports:
      - 127.0.0.1:5432:5432
    #env_file:
    #  - dk.env
    environment:
      PGDATA: /var/lib/postgresql/data #数据存储文件夹
      POSTGRES_DB: simple_db #在此填写postgres的数据库名,默认是postgres
      POSTGRES_USER: postgres # psql 用户
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # psql 密码
    volumes:
      - /etc/localtime:/etc/localtime
      - /data/pg_data:/var/lib/postgresql/data #将数据映射到对应的路径----【冒号后不能有空格】
      #- /etc/passwd:/etc/passwd:ro
    #user: $UID:$UID
    restart: always

  pgadmin:
    image: dpage/pgadmin4:snapshot
    container_name: pgadmin4_dk
    restart: always
    environment: 
      PGADMIN_DEFAULT_EMAIL: aa@bb.com #在此填写pgAdmin登录账户邮箱
      PGADMIN_DEFAULT_PASSWORD: ${POSTGRES_PASSWORD} #在此填写pgAdmin密码
    volumes:
      - /etc/localtime:/etc/localtime
    ports:
      - 8093:80
    depends_on:
      - postgres

  redis:
    # Redis 的密码需要自己在与容器共享的配置 redis.conf 中加入,即更改配置中 requirepass
    # 或 command  增加选项:--requirepass yourpassword
    # 指定镜像
    image: redis:6-alpine
    container_name: my_redis
    restart: always
    ports:
      # 端口映射
      - 6379:6379
    volumes:
      - /etc/localtime:/etc/localtime
      - ${REDIS_DIR}/data:/data
      - ${REDIS_DIR}/redis.conf:/etc/redis/redis.conf # 配置文件必须自定义,否则启动不了
      #- ${REDIS_DIR}/redis.conf:/usr/local/etc/redis/redis.conf # 配置文件
    command: redis-server /etc/redis/redis.conf # 执行的命令
    tty: true
  nginx: # 服务的名称
    image: nginx:1.19.0-alpine
    container_name: my_nginx
    volumes: # 文件夹映射
      - /data/html:/usr/share/nginx/html:ro # 宿主:docker:只读  ,www目录
      - /data/nglogs:/data/nglogs # log.txt
      - ./nginx_conf/nginx.conf:/etc/nginx/nginx.conf:ro # nginx配置文件
    ports: # 端口转发 宿主:docker  【注意nginx.conf文件中端口配置】
      - "8080:80"
      - "8081:81"
    # environment:
    # - NGINX_HOST=foobar.com
    # - NGINX_PORT=80
    # command: /bin/bash -c "envsubst < /etc/nginx/conf.d/mysite.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"#利用环境变量动态修改配置文件
    #networks: ## 定义网络
    #  nn: ## 加入的网络的名称
    #    ipv4_address: 192.168.5.101 ## ipv4的ip地址
  #-----------需测试        
  uwsgi:
    image: py37:slim_uwsgi
    container_name: myuwsgi
    restart: always

    #working_dir: /code/web
    volumes:
      - ./code:/uwsgi/code
      - ./uwsgi_conf:/uwsgi
      - ./uwsgi_entrypoint:/data
    expose:
      - 809
    ports:
      - 890:809
    depends_on:
      - postgres
      - redis
    #command: uwsgi --ini uwsgi.ini  #容器入口为Entrypoint.sh 此处仅需传递参数
    command: --ini /uwsgi/uwsgi.ini

networks: ##定义网络组
  nn: ## 网络组名称
    driver: bridge ## 网络的模式
    ipam: ## 配置网络
      driver: default
      config:
        - subnet: 192.168.5.0/24 ## ip地址网络 这里宿主机一般会是该网段的 192.168.5.1,所以不要设置自网段为1  

redis.conf

port 6379
#bind 127.0.0.1
#cluster-enabled yes
#cluster-config-file nodes.conf
#cluster-node-timeout 5000
deamonize  no
appendonly yes
#requirepass 1111111

nginx.conf:

#user  nobody;
worker_processes  4;

error_log  /data/nglogs/error.log;
#error_log  logs/error.log  notice;error_log类型如下(从左到右:debug最详细 crit最少)[ debug | info | notice | warn | error | crit ] 
#error_log /dev/null crit; #关闭日志输出,即把存储位置设置到Linux的黑洞中去 

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main    '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';
    #log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
    #                   '$status $body_bytes_sent "$http_referer" '
    #                   '"$http_user_agent" $http_x_forwarded_for '
    #                   '"$upstream_addr" "$upstream_status" "$upstream_response_time" "$request_time"';

    access_log  /data/nglogs/host.access.log  main;
    limit_conn_zone $binary_remote_addr zone=one:10m;
    server_tokens off;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
    upstream myweb {
        ip_hash;
        server 127.0.0.1:8090;
    }
    upstream mytel {
        #ip_hash;
        server 127.0.0.1:8797;
    }
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        #access_log  /data/nglogs/access8999.log  access;
        client_body_timeout 20s;
        client_header_timeout 10s;
        keepalive_timeout 60s;
        send_timeout 30s;
        limit_conn one 30;  #这将指定一个地址只能同时存在一个连接。“one”与上面的对应,也可以自定义命名
        limit_rate 500k;

        location / {
            root   /usr/share/nginx/html/;
            index  index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #

        error_page 400 401 402 403 404 405 408 410 412 413 414 415 500 501 502 503 504 506 /50x.html;
        location = /50x.html {
            #放错误页面的目录路径。
            root   /data/html;
        }

        location ~* ^/(mobapi|index|api|user|upload)/ {
            #include /usr/local/nginx/conf/uwsgi_params;
            #uwsgi_pass unix:/tmp/pgadmin4.sock;
            include uwsgi_params;
            uwsgi_pass mytel;

        }

    }

}

uwsgi.conf

[uwsgi]
#socket = /tmp/pgadmin4.sock
#chmod-socket = 755
socket = 127.0.0.1:8797
#http-socket = 127.0.0.1:8097
#指定socket文件,也可以指定为127.0.0.1:9000,这样就会监听到网络套接字
processes = 4
threads = 8
chdir = /data/bottle_telnum/
mount = /=main:app
manage-script-name = true
pidfile = /data/uwsgi/uwsgi_m.pid
#daemonize = /var/log/my_uwsgi.log
logto = /data/uwsgi/my_uwsgi_m.log
# 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器
master = true
#序列化接受的内容,如果可能的话
thunder-lock = true
#启用线程
enable-threads = true
vacuum = true
disable-logging = true

文章永久链接:https://tech.souyunku.com/42083

未经允许不得转载:搜云库技术团队 » docker-compose.yml

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们