Docker - Compose i dockerfile

Docker-compose pomaga w automatyzacji. Domyśli plik to docker-compose.yml

Pamiętaj że format pliku to YAML.

Schemat

Wykorzystany z źródeł internetu schemat pliku:

version: '3.1'  # if no version is specificed then v1 is assumed. Recommend v2 minimum

services:  # containers. same as docker run
  servicename: # a friendly name. this is also DNS name inside network
    image: # Optional if you use build:
    command: # Optional, replace the default CMD specified by the image
    environment: # Optional, same as -e in docker run
    volumes: # Optional, same as -v in docker run
  servicename2:

volumes: # Optional, same as docker volume create

networks: # Optional, same as docker network create

Korzystamy z dwóch najpopularniejszych komend:

$ docker-compose up
$ docker-compose down

Przykładowa implementacja Drupala do Docker-compose i Dockerfile

Poniżej przygotowany na podstawie oficjalnego dokumentu plik Docker-compose.yml:

version: '3.1'

services:

  drupal:
    image: drupal-dockerfile
    build: .
    ports:
      - "8080:80"
    volumes:
      - drupal-modules:/var/www/html/modules
      - drupal-profiles:/var/www/html/profil
      - drupal-sites:/var/www/html/sites
      - drupal-themes:/var/www/html/themes
    restart: always

  postgres:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - drupal-psql
    restart: always

volumes:
  drupal-psql:
  drupal-modules:
  drupal-profiles:
  drupal-sites:
  drupal-themes:

Plik Dockerfile z dodatkową konfiguracją kontenera Drupal:

FROM drupal:8.2

RUN apt-get update && apt-get install -y git

Następnie wystarczy tylko uruchomić dany kontener za pomocą komendy:

$ docker-compose up
$ docker-compose down -v # wyłączyć wraz z usunięciem volumes