Mac构建Django项目时遇docker-compose凭证获取错误
Mac环境下Docker-Compose构建Django项目的问题排查与解决
问题场景
在Mac环境下执行命令构建Django项目时,遇到三类问题,且该问题在Ubuntu环境下未出现:
hl0变量未设置的重复警告- root运行需ASL日志的提示
- 核心错误:`error getting credentials - err: exit status 1, out: ``
执行命令及报错信息
sudo docker-compose -f docker-compose.dev.yml up -d --build Password: WARN[0000] The "hl0" variable is not set. Defaulting to a blank string. WARN[0000] The "hl0" variable is not set. Defaulting to a blank string. WARN[0000] The "hl0" variable is not set. Defaulting to a blank string. WARN[0000] The "hl0" variable is not set. Defaulting to a blank string. 2023/05/21 14:09:08 must use ASL logging (which requires CGO) if running as root [+] Running 0/0 ⠋ db Pulling 0.0s error getting credentials - err: exit status 1, out: ``
docker-compose配置文件
version: "3.3" services: db: image: postgres:14.0-alpine environment: POSTGRES_USER: ${SQL_USER} POSTGRES_PASSWORD: ${SQL_PASSWORD} POSTGRES_DB: ${SQL_DATABASE} volumes: - rbn_db:/var/lib/postgresql/data networks: - rbn web: build: ./ # command: gunicorn monsite.wsgi:application --bind 0.0.0.0:8000 command: python manage.py runserver 0.0.0.0:8000 volumes: - ./:/code ports: - "9005:8000" env_file: - ./.env depends_on: - db networks: - rbn volumes: rbn_db: networks: rbn: driver: bridge
.env配置文件
DEBUG=1 SECRET_KEY=secret_key DJANGO_ALLOWED_HOSTS=localhost;127.0.0.1 SQL_ENGINE=django.db.backends.postgresql SQL_DATABASE=database SQL_USER=database_user SQL_PASSWORD=database_password SQL_HOST=db SQL_PORT=5432 DJANGO_DEBUG=True
解决方案
1. 解决凭证获取错误(error getting credentials)
Mac环境下使用sudo运行docker-compose会导致无法读取当前用户的Docker凭证,建议按以下方式处理:
- 优先方案:移除
sudo,确保当前用户已加入docker用户组。可通过docker ps测试是否无需sudo就能执行Docker命令,若不能,执行sudo usermod -aG docker $USER后重启终端生效。 - 备选方案(必须用sudo时):指定
DOCKER_CONFIG环境变量指向当前用户的Docker配置目录,命令示例:sudo DOCKER_CONFIG=/Users/你的用户名/.docker docker-compose -f docker-compose.dev.yml up -d --build
2. 解决hl0变量未设置警告
- 检查
docker-compose.dev.yml文件,确认是否存在未定义的${hl0}变量引用,若为误写则修正变量名; - 若该变量确实需要使用,在
.env文件中添加hl0=你的变量值配置。
3. 解决ASL日志提示
该提示是Mac下以root身份运行Docker时的日志机制提示,无需额外修复:
- 采用上述移除
sudo的方案即可消除该提示; - 若保留
sudo,项目正常启动后该提示不影响功能,可忽略。
内容的提问来源于stack exchange,提问作者Lalit mahato
相关产品推荐
相关产品推荐

