我创建了一个容器,该容器可以在主机上运行Apache的用户从主机设置用户的uid。这样,我可以共享目录而不会出现任何权限问题。
我正在使用环境变量“ CONTAINER_USER_UID”来绑定那些用户。因此,我用id -u
的结果来设置此变量。
我试图将'id -u'作为值添加到docker-compose文件中,但是它不起作用...
version: '3'
services:
members:
image: olive007/ubuntu-php-apache:18.04-7.2-2.4
environment:
CONTAINER_USER_UID: `id -u`
CONTAINER_USER_GID: `id -g`
ports:
- "80:80"
volumes:
- ./laravel:/var/www/html
我收到此错误:
错误:yaml.scanner.ScannerError:扫描下一个令牌时出现
找到了无法启动任何令牌的字符“`”
任何人都知道如何通过在主机上运行命令的结果来设置环境变量吗?
对不起,我正在学习英语...
答案 0 :(得分:0)
您无法从yml文件运行bash命令。使用docker-compose environment variable substition:
docker-compose.yml
version: '3'
services:
members:
image: olive007/ubuntu-php-apache:18.04-7.2-2.4
environment:
CONTAINER_USER_UID: ${HOST_UID}
CONTAINER_USER_GID: ${HOST_GID}
ports:
- "80:80"
volumes:
- ./laravel:/var/www/html
然后以以下方式运行服务:
export HOST_UID=`id -u`
export HOST_GID=`id -g`
docker-compose up