2024-01-12
温故知新
00

目录

简介
问题原因
实例
修改

简介

如果在Ubuntu系统中,运行一些程序时出现"PWD" variable is not set. Defaulting to a blank string.,大概率是配置文件中使用${PWD}这类语法导致的。

问题原因

在Ubuntu系统中,执行严格的权限管理,一般你是无法使用 root 用户进行操作的,如果需要root 权限,大多也是使用 sudo 来执行。

大多数Linux系统中,root用户具有最高权限,也就是管理员权限。

所以我们大多数情况下使用的是一个普通用户,在Ubuntu中执行很多程序时,一般需要在执行的命令前加上 sudo ,来获取管理员权限去执行,如果此时执行的程序中有配置 ${PWD} 相关参数,很可能会出现 "PWD" variable is not set. Defaulting to a blank string. 报错,这是因为系统不知道用什么权限去执行 ${PWD} 命令,因为在普通用户和 root 用户下,执行 ${PWD} 或得到不一样的值。

实例

docker-compose.yml 文件为例,如果你在Centos系统下,配置 docker-compose.yaml 可能出现如下配置:

yaml
volumes: # 日志文件映射 - ${PWD}/log:/var/log

这样的配置在 Centos 中大概率不会出错,因为很多用户使用 Centos 系统时,为了方便,都是直接使用 root 用户进行的操作。

但在 Ubuntu 系统下,很可能会报错。

修改

既然 ${PWD} 报错,那么只能修改了,修改方式一般有两种:

  1. 使用相对路径:docker-compose.yaml支持相对路径配置
yaml
volumes: # 日志文件映射 - ./log:/var/log
  1. 使用绝对路径
yaml
volumes: # 日志文件映射 - /usr/local/app/log:/var/log
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!