我正在使用 Docker 设置隔离的开发环境。因此,我配置了 dockerfile 来创建非 root 用户。(使用官方 Ubuntu 映像作为基础)我创建了一个用于文件管理的卷...
我正在使用 Docker 设置隔离的开发环境。因此我配置了 dockerfile 来创建非 root 用户。(使用官方 Ubuntu 镜像作为基础)
我创建了一个用于文件管理的卷,但是出现了权限问题。
为此审查了几种解决方案。:
我想应用解决方案2,但问题如下。
但是,为了使用 Docker 而修改外部环境似乎不太可取。因此,我决定不创建 1001:1001 的用户。
名为“ubuntu”的用户是一个已经创建的账户,如下所示。
$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
Digest: sha256:3f85b7caad41a95462cf5b787d8a04604c8262cdcdf9a472b8c52ef83375fe15
Status: Image is up to date for ubuntu:latest
docker.io/library/ubuntu:latest
What's Next?
1. Sign in to your Docker account → docker login
2. View a summary of image vulnerabilities and recommendations → docker scout quickview ubuntu
$ docker run --rm ubuntu cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash <-- ??
我想知道的是:
我正在寻找一种灵活、通用且不受外部环境影响的方法来解决这个问题。
创建 c# 脚本后,您可以将其拖放到空的游戏对象上(通过在左侧的检查器中单击鼠标右键,然后单击“创建”>“空”来创建)。
执行此操作后,您应该能够将脚本视为游戏对象上的组件。您还可以在其中找到公共变量,如 ball、positionBall 和 moneyText。
首先是球变量。它的类型是“游戏对象”。要填充该变量,首先要在编辑器中创建一个球。为此,右键单击检查器,然后单击创建 > 3d > 球体。然后在右侧,您会看到组件选项卡。在那里单击“添加组件”以添加 Rigidbody3D。这对于为您的球启用物理特性至关重要。
完成后,将对象从检查器拖到底部的文件选项卡中。您已经创建了一个预制件,可以说是一个可重复使用的游戏对象。然后,您可以将其拖到脚本的变量槽中,您可以在放置脚本的对象右侧看到该变量槽。
positionBall 变量属于 Transform 类型。这意味着位置、旋转和缩放。您可以通过创建另一个空 GameObject(如上所述)来填充它,只需将其拖入变量槽即可。这将是球的“生成点”。
moneyText 变量的类型为 TMP_Text(text mesh pro,一种高级文本渲染系统或其他)只需单击 create>ui>Text mesh pro text,创建后将其拖入变量槽即可。
现在您已经分配了所有变量:)
现在您可以创建其他游戏对象并为它们赋予标签 Player,您可以在编辑器的右上角创建和分配该标签。
我希望这有帮助 :)