docker-compose выполнить скрипт тома от имени root - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть такой docker-compose.yml, например, fe:

version: '3'

services:
  db:
    #build: db
    image: percona:5.7.24-centos
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: pass
      MYSQL_DATABASE: bc
      MYSQL_PASSWORD: pass
    volumes:
      - ./db:/docker-entrypoint-initdb.d

, а сценарий fe:

mkdir /home/workdirectory/

Нет sudo вэто изображение.

Пользователь по умолчанию - mysql.

Исходное место - просто /.

Так как я могу выполнять скрипты внутри ./db как root наэто изображение?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Я бы посоветовал вам использовать следующее при условии , что ваш скрипт является bash-скриптом, и он помещен в папку db:

script.sh

#!/bin/bash
mkdir -p /home/workdirectory/some-sub-folder/

, затем убедитесь, что ваш контейнер запущен, выполнив docker-compose up -d

, а затем используйте следующую команду для выполнения некоторого сценария внутри контейнера:

docker exec db /docker-entrypoint-initdb.d/script.sh

Ссылка:

https://docs.docker.com/engine/reference/commandline/exec/

0 голосов
/ 19 декабря 2018

Вы можете унаследовать свой собственный образ докера от percona:5.7.24-centos и сменить пользователя или установить sudo.Или просто создайте необходимые каталоги в Dockerfile.

...