docker compose Переписываем команду на docker run

Если у вас был такой докер композ:

services:
  mysql_old:
    image: mysql:8.3
    container_name: test_mysql_1
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - '../input:/var/www/input'
      - './config/mysql:/docker-entrypoint-initdb.d'
    environment:
      MYSQL_ROOT_PASSWORD: mypass
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypass
      MYSQL_MULTIPLE_DATABASES: my_mysql_db
    ports:
      - 21211:3306

То можно запустить через docker run в виде:

docker.run:
	docker run --name mysql_test_run_1 \
	-v "/$(pwd)/docker/config/create-multiple-mysql-databases.sh:/docker-entrypoint-initdb.d/init.sql" \
	-e MYSQL_ROOT_PASSWORD=mypass \
	-e MYSQL_USER=myuser \
	-e MYSQL_PASSWORD=mypass \
	-e MYSQL_MULTIPLE_DATABASES=my_mysql_db \
	-d mysql:8.3

флаг -d можно не использовать, если хотим после запуска сразу попасть в контейнер:

docker rm mysql_test_run_1 \
    && docker run --name mysql_test_run_1 \
    -v "/$(pwd)/docker/config/create-multiple-mysql-databases.sh:/docker-entrypoint-initdb.d/init.sql" \
    -e MYSQL_ROOT_PASSWORD=mypass \
    -e MYSQL_USER=myuser \
    -e MYSQL_PASSWORD=mypass \
    -e MYSQL_MULTIPLE_DATABASES=my_mysql_db \
    mysql:8.3

-- также мы тут не используем флаг -d, чтобы попасть внутрь контейнера и увидеть сообщения об ошибках

С помощью такого подхода можно провести отладку, чтобы понять почему не запускаются/завершаются/падают контейнеры при запуске docker compose

Key Words for FKN + antitotal forum (CS VSU):