Connecting

불좀 꺼줄래? 내 Docker좀 보게 PART 9 - Docker-Compose 애플리케이션 배포 본문

Container

불좀 꺼줄래? 내 Docker좀 보게 PART 9 - Docker-Compose 애플리케이션 배포

팬도라 2020. 11. 18. 12:23
반응형

실전 연습 - Docker Compose 애플리케이션 배포하기

위에서 docker-compose.yml 작성 방법에 대해 알아보았다. 이번 시간에는 실제 docker-compose.yml 파일을 작성하고 실행하여 서비스 동작 과정을 실습한다.

XpressEngine 3와 mariadb 연동하기

위에 고급 실습을 통해서 XpressEngine 3의 Dockerfile를 만들었고 정상적으로 실행하기 위한 데이터베이스 연결과정을 작성해 보도록 하겠다.

version: '3.4' 

services:
  xpressengine:
    image: jusk2/xpressengine
    ports: 
      - 10001:80
    restart: always 
  database:
    image: mariadb
    environment:  
      MYSQL_ROOT_PASSWORD: 1q2w3e4r!!
      MYSQL_DATABASE: xpress
      MYSQL_USER: lucas
      MYSQL_PASSWORD: 1q2w3e4r!!
    ports:
     - 3306:3306
    restart: always
    volumes:
     - /mnt/swarm/mariadb:/var/lib/mysql

Docker Compose에서 이미지 직접 빌드하기

이미 만들어진 이미지를 가지고 와서 실행하는 것이 아니라 프로젝트 파일 자체에 Dockerfile를 활용하여 이미지를 빌드하고 실행할 수 있는 구조로 작성할 수 있다.

$ git clone https://github.com/raccoonyy/django-sample-for-docker-compose.git
$ vi docker-compose.yml
version: '3'

volumes: 
  postgres_data: {}

services:
  db:
    image: postgres
    volumes:
      - postgres_data:/var/lib/postgres/data
    environment:
      - POSTGRES_DB=djangosample
      - POSTGRES_USER=sampleuser
      - POSTGRES_PASSWORD=samplesecret

  django:
    build:     
      context: .
      dockerfile: ./compose/django/Dockerfile-dev
    volumes:
      - ./:/app/
    command: ["./manage.py", "runserver", "0:8000"]
    environment:
     - DJANGO_DB_HOST=db
    depends_on: 
      - db
    restart: always
    ports:
      - 8000:8000

오픈소스 프로그램 odoo docker-compose.yml 예제

version: '3'
services:
  db:
    container_name: postgresql-odoo13
    image: postgres:11.6
    environment:
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_USER=odoo
      - POSTGRES_DB=postgres
    ports:
      - "5432:5432"
    volumes:
        - ~/odoo/pgsql:/var/lib/postgresql/data
    restart: always

  odoo13:
    container_name: odoo13
    image: odoo:latest
    depends_on:
      - db
    ports:
      - "8071:8069"
    tty: true
    command: -- --dev=reload
    volumes:
      - ~/odoo/addons:/mnt/extra-addons
      - ~/odoo:/etc/odoo
    restart: always

  pgadmin:
    container_name: pgadmin-container
    image: dpage/pgadmin4
    environment:
      - PGADMIN_DEFAULT_EMAIL=pgadmin4@pgadmin.org
      - PGADMIN_DEFAULT_PASSWORD=admin
    depends_on:
      - db
    ports:
      - "5550:80"

    restart: unless-stopped

Comments