Docker weblogic 的图像与另一个 user/group 创建外部卷

Docker image for weblogic creating a external volume with another user/group

我正在使用 Oracle Docker 图像创建一个带有域和外部卷的 weblogic 容器,这样我就可以将 war 文件移到那里以在界面中部署。所有这一切都是使用组 oinstall 的用户 oracle 创建的。然而,该卷是由另一个用户创建的,在这种情况下是 vagrant。

我尝试以 root 身份移动文件并将权限从 vagrant 更改为 oracle 但没有成功,但稍后在界面中 weblogic 无法部署文件

使用命令 docker exec CONTAINER_ID id 我看到它有我的 oracle 用户的 uid、gid 和组。 uid=1000(oracle) gid=1000(oracle) groups=1000(oracle) 符合预期

我为域创建映像的脚本 (12.2.1.3 btw) 并在以下内容之后使用命令创建容器: docker run -d --name wlsadmin --hostname wlsadmin -p 7001:7001 --env-file ./container-scripts/domain.properties -e ADMIN_PASSWORD=weblogic123 -v /home/oracle/weblogicDomains/:/u01/oracle/user_projects 12213-domain

预期的结果是使用 oracle 及其组创建卷,但结果如下:

[oracle@localhost weblogicDomains]$ ll
total 0
drwxr-x---. 3 vagrant vagrant 25 Apr 29 15:33 domains

注意在oracle用户根目录下创建的文件夹weblogicDomains设置了正确的用户和组。先前使用带有外部卷的 Oracle12c 创建的 docker 容器非常成功,其中 oracle 作为其用户,oinstall 作为其组。

找到原因了。 Docker 将使用 uid 和 gid 1000(如果我没记错的话默认用户)的权限创建外部卷,这对我来说是无业游民。 我找到的解决方法是向其他人授予 r/w 权限,并使用 root 将文件移动到外部卷,然后在界面中可以选择和部署它