【问题标题】:docker-compose execute volume script as rootdocker-compose 以 root 身份执行卷脚本
【发布时间】:2019-05-19 16:09:55
【问题描述】:

我有这样的 docker-compose.yml f.e.:

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

脚本是 f.e.:

mkdir /home/workdirectory/

该图像中没有sudo

默认用户是mysql

初始位置只是/

那么我怎样才能在./db 中以该图像的根用户身份执行脚本呢?

【问题讨论】:

    标签: docker centos docker-compose percona


    【解决方案1】:

    您可以从percona:5.7.24-centos 继承您自己的 docker 映像并切换用户或安装sudo。或者只是在Dockerfile 中创建必要的目录。

    【讨论】:

      【解决方案2】:

      我建议您使用以下假设您的脚本是一个 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/

      【讨论】:

        猜你喜欢
        • 2019-01-29
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-30
        • 2014-04-29
        • 1970-01-01
        • 2011-12-27
        相关资源
        最近更新 更多