Reduce Docker-compose File length with the YAML Merge Key <<

If you are writing a docker-compose file, it can happen to have the same part of the configuration of each container repeated over and over the file.

Let’s take this example.

version: ‘3.7’

services:
web:
restart: always
image: web
e…


This content originally appeared on DEV Community and was authored by Mangabo Kolawole

If you are writing a docker-compose file, it can happen to have the same part of the configuration of each container repeated over and over the file.

Let's take this example.

version: '3.7'

services:
  web:
    restart: always
    image: web
    environment:
    - ENVIRONMENT_NAME=local_dev
    - USING_DOCKER_COMPOSE=true
    - DJANGO_SETTINGS_MODULE=sms_mailer.settings
    - DJANGO_CONFIGURATION=Local
    - DJANGO_SECRET_KEY
    - DJANGO_ALLOWED_HOSTS
    - DJANGO_CORS_ORIGIN_WHITELIST
    build:
      context: ./
      dockerfile: Dockerfile
    ports:
      - "8000:8000"
    command: /code/run_web.sh

  task_runner:
    restart: always
    image: task_runner
    environment:
    - ENVIRONMENT_NAME=local_dev
    - USING_DOCKER_COMPOSE=true
    - DJANGO_SETTINGS_MODULE=sms_mailer.settings
    - DJANGO_CONFIGURATION=Local
    - DJANGO_SECRET_KEY
    - DJANGO_ALLOWED_HOSTS
    - DJANGO_CORS_ORIGIN_WHITELIST
    build:
      context: ./
      dockerfile: Dockerfile
    ports:
      - "5000:5000"
    command: /code/task_runner.sh   

We have this part of the code repeated two times in the docker-compose file.

environment:
    - ENVIRONMENT_NAME=local_dev
    - USING_DOCKER_COMPOSE=true
    - DJANGO_SETTINGS_MODULE=sms_mailer.settings
    - DJANGO_CONFIGURATION=Local
    - DJANGO_SECRET_KEY
    - DJANGO_ALLOWED_HOSTS
    - DJANGO_CORS_ORIGIN_WHITELIST
  build:
    context: ./
    dockerfile: Dockerfile

Let's use the << YAML keyword to make this file a little bit short.

version: '3.7'

x-web-environment:
  &web-environment
  environment:
    - ENVIRONMENT_NAME=local_dev
    - USING_DOCKER_COMPOSE=true
    - DJANGO_SETTINGS_MODULE=sms_mailer.settings
    - DJANGO_CONFIGURATION=Local
    - DJANGO_SECRET_KEY
    - DJANGO_ALLOWED_HOSTS
    - DJANGO_CORS_ORIGIN_WHITELIST
  build:
    context: ./
    dockerfile: Dockerfile

services:
  web:
    <<: *web-environment
    restart: always
    image: web
    ports:
      - "8000:8000"
    command: /code/run_web.sh

  task_runner:
    <<: *web-environment
    restart: always
    image: task_runner
    ports:
      - "8001:8001"
    command: /code/run_task_runner.sh

And we've just optimized the Docker Compose file.🤟‍

Article posted using bloggu.io. Try it for free.


This content originally appeared on DEV Community and was authored by Mangabo Kolawole


Print Share Comment Cite Upload Translate Updates
APA

Mangabo Kolawole | Sciencx (2022-05-03T06:57:01+00:00) Reduce Docker-compose File length with the YAML Merge Key <<. Retrieved from https://www.scien.cx/2022/05/03/reduce-docker-compose-file-length-with-the-yaml-merge-key/

MLA
" » Reduce Docker-compose File length with the YAML Merge Key <<." Mangabo Kolawole | Sciencx - Tuesday May 3, 2022, https://www.scien.cx/2022/05/03/reduce-docker-compose-file-length-with-the-yaml-merge-key/
HARVARD
Mangabo Kolawole | Sciencx Tuesday May 3, 2022 » Reduce Docker-compose File length with the YAML Merge Key <<., viewed ,<https://www.scien.cx/2022/05/03/reduce-docker-compose-file-length-with-the-yaml-merge-key/>
VANCOUVER
Mangabo Kolawole | Sciencx - » Reduce Docker-compose File length with the YAML Merge Key <<. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/05/03/reduce-docker-compose-file-length-with-the-yaml-merge-key/
CHICAGO
" » Reduce Docker-compose File length with the YAML Merge Key <<." Mangabo Kolawole | Sciencx - Accessed . https://www.scien.cx/2022/05/03/reduce-docker-compose-file-length-with-the-yaml-merge-key/
IEEE
" » Reduce Docker-compose File length with the YAML Merge Key <<." Mangabo Kolawole | Sciencx [Online]. Available: https://www.scien.cx/2022/05/03/reduce-docker-compose-file-length-with-the-yaml-merge-key/. [Accessed: ]
rf:citation
» Reduce Docker-compose File length with the YAML Merge Key << | Mangabo Kolawole | Sciencx | https://www.scien.cx/2022/05/03/reduce-docker-compose-file-length-with-the-yaml-merge-key/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.