0

我正在尝试评估 cookiecutter-django,到目前为止,它是启动项目的好工具。一切都很顺利,除非我尝试将 docker 与 certbot 一起使用,但我遇到了这个错误。

nginx_1         | 2016/06/15 07:55:36 [emerg] 1#1: invalid port in upstream "___LETSENCRYPT_IP___:___LETSENCRYPT_PORT___" in /etc/nginx/nginx.conf:42

start.sh 包含

sed -i "s/___LETSENCRYPT_IP___/$LETSENCRYPT_PORT_80_TCP_ADDR/g" /etc/nginx/nginx.conf
sed -i "s/___LETSENCRYPT_PORT___/$LETSENCRYPT_PORT_80_TCP_PORT/g" /etc/nginx/nginx.conf

我不是这里的专家,但我可以看到脚本正在引用环境变量,但是当我尝试检查 nginx 容器中的环境变量时,我没有看到任何与letsencrypt相关的内容。

[root@localhost]# docker-compose run nginx bash
Starting tbpcsuite_certbot_1
Starting tbpcsuite_postgres_1
Starting tbpcsuite_redis_1
Starting tbpcsuite_django_1
root@b7d12c245b86:/# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="3" [2]="30" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.3.30(1)-release'
COLUMNS=197
DIRSTACK=()
EUID=0
GROUPS=()
HISTFILE=/root/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/root
HOSTNAME=b7d12c245b86
HOSTTYPE=x86_64
IFS=$' \t\n'
LINES=73
MACHTYPE=x86_64-pc-linux-gnu
MAILCHECK=60
MY_DOMAIN_NAME=www.192.168.33.10.xip.io
NGINX_VERSION=1.11.1-1~jessie
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIPESTATUS=([0]="1")
PPID=0
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS2='> '
PS4='+ '
PWD=/
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
TERM=xterm
UID=0
_=']'

我迷路了,任何指导我都会感激不尽。

谢谢,

4

1 回答 1

1

看起来您可能正在使用 dockers new 网络,它不推荐使用链接容器的环境变量。仅当您使用旧版 1 Compose 文件格式时,才会填充环境变量。

我能够通过改变来让我的工作:

  • ___LETSENCRYPT_IP___certbot
  • ___LETSENCRYPT_PORT___80
  • ___LETSENCRYPT_HTTPS_IP___certbot
  • ___LETSENCRYPT_HTTPS_PORT___443

在 nginx.conf 和 nginx-secure.conf 中。

在 cookiecutter-django 存储库中也有关于此的讨论和公开拉取请求,可能有更多信息。

于 2016-06-19T08:00:05.923 回答