Docker-compose 中的可变图像

Variable images in Docker-compose

我想为 Docker-compose 文件中的 drupal 'image' 标签赋值。

docker-compose.yml

version: '3'
services:
  drupal:
    image: jonasvbogaert/digipolis-migration:latest
    container_name: drupalenv
    ports:
      - 8080:80
    volumes:
      - ../drupal_site_eloket-brandweerzonecentrum/:/var/www/html/
    restart: always
    environment:
      DRUPAL_SITE_NAME: Drupal
      DRUPAL_USER: admin
      DRUPAL_PASS: admin
  mariadb:
    image: mariadb:latest
    container_name: mariadbenv
    restart: always
    ports:
      - 3036:3036
    depends_on:
      - drupal
    environment:
      MYSQL_ROOT_PASSWORD: ""
      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
      MYSQL_USER: drupal
      MYSQL_PASSWORD: drupal
      MYSQL_DATABASE: drupal

在 shell 脚本的帮助下,我想询问用户他们想要使用哪个 Drupal 版本。 根据他们的回答(7 或 8),我希望图像值在 2 个图像之间切换。

您可以在 docker-compose.yml 中使用环境变量。以下更改

image: jonasvbogaert/digipolis-migration:latest

image: jonasvbogaert/digipolis-migration:${DRUPAL_VERSION}

在您的 bash 脚本中,您将使用

export DRUPAL_VERSION=8 #will come from the user
docker-compose up -d

具有给定标签的两个图像应该事先实际存在。如果您需要手动构建它们,那么您可以在 Dockerfile 中使用构建参数。