我正在复制aliases.sh
到基于高山的容器中:
FROM php:8.1-fpm-alpine AS php
COPY .docker/aliases.sh /etc/profile.d/
CMD ["php-fpm"]
当我登录到 shell 时,我的别名不起作用。如果我运行:
source /etc/profile
突然开始工作了。也许我需要添加source
命令Dockerfile
,但是……这对我来说没有意义。
答案1
Unix shell 通常只/etc/profile
在作为登录 shell 启动时加载文件。Alpine 上的默认 shell Ash 也是这样做的。
来自灰手册:
登录 shell 首先从文件 /etc/profile 和 .profile 读取命令(如果存在)。
使用 启动 shell-l
应该将其作为登录 shell 启动,并且它应该读取/etc/profile
。
ash -l
答案2
ENV ENV="/etc/profile"
是我解决问题的方法。已将其添加到Dockerfile
。现在,无论我如何登录容器(使用 Docker Desktop、VS Code docker 扩展等),我都可以使用 提供的别名aliases.sh
。