linux - 在 docker-compose 中运行 bash 命令
问题描述
我正在使用默认映像,我的要求是在运行 docker-compose 文件时运行一些 Linux 命令。os是redhat。这是我的 docker-compose 文件
version: '3.4'
services:
rstudio-package-manager:
image: 'rstudio/rstudio-package-manager:latest'
restart: always
volumes:
- '$PWD/rstudio-pm.gcfg:/etc/rstudio-pm/rstudio-pm.gcfg'
command: bash -c mkdir "/tmp/hello"
ports:
- '4242:4242'
这是错误:
rstudio-package-manager_1 | mkdir: missing operand
rstudio-package-manager_1 | Try 'mkdir --help' for more information.
任何帮助,将不胜感激
编辑
我必须在容器启动后运行一些命令。它也可以作为 bash 脚本添加。为此,我尝试了这个
version: '3.4'
services:
rstudio-package-manager:
privileged: true
image: 'rstudio/rstudio-package-manager:latest'
restart: always
environment:
- RSPM_LICENSE=1212323123123123
volumes:
- './rstudio-pm.gcfg:/etc/rstudio-pm/rstudio-pm.gcfg'
- './init.sh:/usr/local/bin/init.sh'
command:
- init.sh
ports:
- '4242:4242'
init.sh里面是这个
alias rspm='/opt/rstudio-pm/bin/rspm'
rspm create repo --name=prod-cran --description='Access CRAN packages'
rspm subscribe --repo=prod-cran --source=cran
这也没有奏效。谁能帮我吗?
解决方案
您将 3 个参数传递给bash
:
-c
mkdir
/tmp/hello
但你只需要通过两个:
-c
mkdir /tmp/hello
换句话说:-c
期望一个“单词”跟随它。之后的任何内容都被视为位置参数。
所以:
bash -c 'mkdir /tmp/hello'
推荐阅读
- python - 编写一个函数来查找输入数字的阶乘
- android - 应用程序安装失败 - 安装失败,消息为 null
- r - 如何将 span bin 信息转换为单独的 bin?
- spring-boot - 如何修复为每个项目显示相同的图像
- javascript - 克隆的 html 标记丢失事件
- php - 如何使用 Sendgrid 发送电子邮件?
- ios - 如何在stacklayout中呈现collectionview
- python - 为一段 Julia 和 Python 代码优化建议
- mysql - MySql get_lock 用于并发安全 upsert
- python - 如何根据 Python 中的用户输入设置变量的值?