工具[docker-compose] 个人常用的docker-compose配置

212 阅读3分钟
  1. redis
version: "3"
services:
  redis:
    image: redis:7.0.4
    container_name: redis
    command: redis-server --requirepass 123456
    volumes:
      - ./data:/var/lib/redis/data
      - ./redis.conf:/usr/local/etc/redis/redis.conf
    ports:
      - 6379:6379
  1. qt
docker run -dit \
  --name dev-qt \
  --net host \
  -p 10026:22 \
  -v /home/xingqiankun/workdpace/dockerWorkspace/qt/application:/application \
  -v /home/xingqiankun/workdpace/dockerWorkspace/qt/workspace:/workspace \
  -v /etc/localtime:/etc/localtime:ro \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e DISPLAY=unix$DISPLAY \
  -e GDK_SCALE \
  -e GDK_DPI_SCALE \
dev-qt:latest

### 主机需要打开 xhost + ,允许其它应用访问x11窗口

打包包含相应工具的镜像,同时配置源[选用ubuntu的原因是对于qt等桌面开发ubuntu拥有丰富的社区资源和稳定的运行环境,主要是稳定的运行环境,稳定的内核更新,稳定的包管理策略]

FROM ubuntu:latest

# 设置时区
ARG TZ=Asia/Shanghai
ENV TZ ${TZ}
# 用 root 用户操作
USER root

# 更换阿里云源,在国内可以加快速度
RUN sed -i "s/security.ubuntu.com/mirrors.aliyun.com/" /etc/apt/sources.list && \
    sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/" /etc/apt/sources.list && \
    sed -i "s/security-cdn.ubuntu.com/mirrors.aliyun.com/" /etc/apt/sources.list
RUN  apt-get clean
RUN apt-get update
RUN echo "更新源,安装相应工具"

RUN apt-get install -y git \
    vim \
    wget \
    gcc \ 
    g++ \
    curl \
    flex \
    bison \
    gperf \
    python3 \
    python3-pip \
    python3-setuptools \
    cmake \
    ninja-build \
    ccache \
    libusb-dev \
    libffi-dev \
    libssl-dev \
    dfu-util 
    
RUN apt-get install -y build-essential
RUN apt-get install -y gdb
RUN apt-get install -y net-tools
RUN echo "安装成功"
RUN mkdir /application
RUN mkdir /workspace

CMD ["/bin/bash"]
  1. poratiner docker管理工具
version: "3.6"
services:
    portainer-mian:
        container_name: portainer
        image: portainer/portainer:latest
        restart: always
        ports:
            - 9000:9000
        volumes: 
            - /var/run/docker.sock:/var/run/docker.sock:rw
            - ./data:/data:rw
        networks:
            - traefik
        labels:
            - "traefik.enable=true"
            - "traefik.docker.network=traefik"
            - "traefik.http.routers.portainer_halobug.entrypoints=https"
            - "traefik.http.routers.portainer_halobug.rule=Host(`portainer.halobug.cn`)"
            - "traefik.http.routers.portainer_halobug.tls=true"
            - "traefik.http.services.portainer_halobug-backend.loadbalancer.server.scheme=http"
            - "traefik.http.services.portainer_halobug-backend.loadbalancer.server.port=9000"
        logging:
            driver: "json-file"
            options:
                max-size: "10m"
networks:
    traefik:
        external: true
  1. nacos singleton*
version: "1.0"
services:
  nacos-signo:
    image: nacos/nacos-server
    container_name: nacos-signo
    ports:
      - "8848:8848"
      - "9555:9555"
      - "9848:9848"
      - "9849:9849"
    volumes:
      - ./logs:/home/nacos/logs
      - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    restart: on-failure
    network_mode: host
    environment:
      SPRING_DATASOURCE_PLATFORM: mysql 
      MODE: standalone
      MYSQL_SERVICE_DB_NAME: nacos
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: 123456
      JVM_XMS: 256m
      JVM_XMX: 256m
      JVM_XMN: 256m
  1. nacos ms
version: '1.0.0'
services:
  nacos-1:
    image: nacos/nacos-server 
    container_name: nacos-1
    ports:
      - "8848:8848"
      - "9555:9555"
      - "9848:9848"
      - "9849:9849"
    volumes:
      - ./nacos1/logs:/home/nacos/logs
      - ./nacos1/init.d/custom.properties:/home/nacos/init.d/custom.properties
    restart: on-failure
    network_mode: host
    environment:
      SPRING_DATASOURCE_PLATFORM: mysql 
      NACOS_SERVERS: 192.168.0.100:8848 192.168.0.100:8849 192.168.0.100:8850
      MYSQL_SERVICE_HOST: 192.168.0.100
      NACOS_APPLICATION_PORT: 8848
      MYSQL_SERVICE_DB_NAME: nacos
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: admin
      JVM_XMS: 256m
      JVM_XMX: 256m
      JVM_XMN: 256m

  nacos-2:
    container_name: nacos-2
    image: nacos/nacos-server 
    ports:
      - "8849:8849"
      - "9849:9848"
      - "9850:9849"
    volumes:
      - ./nacos2/logs:/home/nacos/logs
      - ./nacos2/init.d/custom.properties:/home/nacos/init.d/custom.properties
    restart: on-failure
    network_mode: host
    environment:
      SPRING_DATASOURCE_PLATFORM: mysql 
      NACOS_SERVERS: 192.168.0.100:8848 192.168.0.100:8849 192.168.0.100:8850
      MYSQL_SERVICE_HOST: 192.168.0.100
      NACOS_APPLICATION_PORT: 8849
      MYSQL_SERVICE_DB_NAME: nacos
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: admin
      JVM_XMS: 256m
      JVM_XMX: 256m
      JVM_XMN: 256m

  nacos-3:
    container_name: nacos-3
    image: nacos/nacos-server 
    ports:
      - "8850:8850"
      - "9850:9848"
      - "9851:9849"
    volumes:
      - ./nacos3/logs:/home/nacos/logs
      - ./nacos3/init.d/custom.properties:/home/nacos/init.d/custom.properties
    restart: on-failure
    network_mode: host
    environment:
      SPRING_DATASOURCE_PLATFORM: mysql 
      NACOS_SERVERS: 192.168.0.100:8848 192.168.0.100:8849 192.168.0.100:8850
      MYSQL_SERVICE_HOST: 192.168.0.100
      NACOS_APPLICATION_PORT: 8850
      MYSQL_SERVICE_DB_NAME: nacos
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: admin
      JVM_XMS: 256m
      JVM_XMX: 256m
      JVM_XMN: 256m
  1. mysql
version: '1.0.0'
services:
  mysql-single:
    container_name: mysql-single
    image: mysql:8.0.4
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - ./conf:/etc/mysql/
      - ./log:/var/log/mysql
      - ./my.ini:/etc/my.ini
      - ./mysql-files:/var/lib/mysql-files/
  1. gitlab
version: '3.6'
services:
  gitlab-web:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com:9443'
        gitlab_rails['gitlab_shell_ssh_port'] = 9022
    ports:
      - '9080:80'
      - '9443:443'
      - '9022:22'
    volumes:
      - '/media/xingqiankun/二十/gitlab/config:/etc/gitlab'
      - '/media/xingqiankun/二十/gitlab/logs:/var/log/gitlab'
      - '/media/xingqiankun/二十/gitlab/data:/var/opt/gitlab'
    shm_size: '1024m'



sudo docker run --detach \
  --hostname gitlab.example.com \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'http://my.domain.com/'; gitlab_rails['lfs_enabled'] = true;" \
  --publish 9443:443 --publish 9080:80 --publish 9022:22 \
  --name gitlab \
  --restart always \
  --volume /media/xingqiankun/二十/gitlab/config:/etc/gitlab \
  --volume /media/xingqiankun/二十/gitlab/logs:/var/log/gitlab \
  --volume /media/xingqiankun/二十/gitlab/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ce:latest
  1. go运行环境
docker run -dit \
  --name dev-go \
  --net host \
  -p 10029:22 \
  -v /tmp/.x11-unix:/tmp/.x11-unix \
  -e DISPLAY=unix$DISPLAY \
  -e GDK_SCALE \
  -e GDK_DPI_SCALE \
  -v /home/xingqiankun/workdpace/dockerWorkspace/devbase/go-dev/workspace:/workspace \
  -v /home/xingqiankun/workdpace/dockerWorkspace/devbase/go-dev/application:/application \
dev-base:latest
  1. jdk调试环境
docker run -dit \
  --name dev-jdk \
  --net host \
  -p 10028:22 \
  -v /home/xingqiankun/workdpace/dockerWorkspace/devbase/jdk-dev/workspace:/workspace \
  -v /home/xingqiankun/workdpace/dockerWorkspace/devbase/jdk-dev/application:/application \
dev-base:latest