본문 바로가기
development/docker

알아 두면 편한 docker-compose Database Template

by 프리(freefly) 2023. 2. 21.
반응형

요즘 토이 프로젝트 할 때 필요한 인프라를 몽땅 docker-compose.yml 에 때려넣고 시작하게 되는 것 같다.

더 이상 docker 없인 살아갈 수가 없다...

개발환경에서 진짜 이만한 게 없다. 옛날처럼 mysql 설치하고 redis 설치하고 client 설치해서 확인하고 접속 안되서 권한 확인하고...

이 작업을 더 이상 할 필요가 없는 것이다.

개발 환경에서 처음 시작하는 애플리케이션의 경우 별 다른 설정 없이 시작하는 경우가 많으니 공통적인 template 형태로 미리 만들어 주는 것이 좋다.

여기에 필요한 설정을 추가하는 것이다.

여기서는 미리 알아 두면 몸이 편한 docker-compose template 몇 가지를 소개하고자 한다.

mysql 

version: '3'
services:
  mysql:
    image: mysql:8.0
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 1234      
    volumes:
      - ~/my/data:/var/lib/mysql

credential 은 root/1234 로 지정해주면 된다.

sql server

version: '3.7'
services:
  sqlserver:
    image: mcr.microsoft.com/mssql/server:2019-latest
    user: root    
    ports:
      - "1433:1433"
    volumes:
      - ~/my/data:/var/opt/mssql/data
    environment:
      ACCEPT_EULA: Y
      SA_PASSWORD: 1234

Postgres

version: "3"
services:
  postges:
    image: postgres    
    ports:
      - "5432:5432"
    volumes:
      - ~/my/data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: test
      POSTGRES_PASSWORD: 1234
      POSTGRES_DB: test

mongodb

version: "3"
services:
  mongodb:
    image: mongo:3.6.9
    ports:
      - "27017:27017"
    volumes:
      - ~/my/data:/data/db
    command: mongod --smallfiles
    environment:
      - MONGO_INITDB_ROOT_USERNAME=test
      - MONGO_INITDB_ROOT_PASSWORD=1234

redis

version: '3'
services:
  redis:    
    image: redis:6.2
    ports:
    - "6379:6379"
   volumes:
    - ~/my/data:/data

redis 는 volumes 를 지정하면 default 로 데이터가 저장된다.

kafka

kafka 는 zookeeper 와 한 쌍이기 때문에 zookeeper 를 먼저 띄우고 띄우도록 설정해야 된다.

version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper	    
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka:2.12-2.5.0	    
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
  - ~/my/data/docker.sock:/var/run/docker.sock

jira

version: '3'
services:  
  jira:
    image: cptactionhank/atlassian-jira-software:latest
    ports:
      - "8080:8080"
    environment:      
      CATALINA_OPTS: "-Xms1024m -Xmx2048m -Datlassian.plugins.enable.wait=300"      
    volumes:
      - ~/my/data:/var/atlassian/jira

jira 는 메모리가 2g 정도 필요하다.

jenkins

version: '3'
services:  
  jenkins:
    image: jenkins/jenkins
    ports:
      - "8080:8080"    
    volumes:
      - ~/my/data:/var/jenkins_home
      - ~/my/data/docker.sock:/var/run/docker.sock

 

혹시나 사용하지 않는 개발자들이 있으면 꼭 한번 써 보도록 하자.

문명을 느껴보는 거다.

반응형

댓글