我试图docker-compose通过环境变量传递我的 redis 密码,但它给了我错误。
这是我的 redis 镜像的一部分docker-compose.yml:
redis:
image: redis
container_name: redis
# command: redis-server --requirepass mypassword <--- this works as expected
# command: redis-server --requirepass ${REDIS_PASSWORD} <-- while this does not
command: redis-server --requirepass $${REDIS_PASSWORD} <-- and this does not work either
volumes:
- redis:/var/lib/redis/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
ports:
- "6379"
env_file:
- .env.prod
Run Code Online (Sandbox Code Playgroud)
我的.env.prod:
REDIS_PASSWORD=mypassword
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误:
consumer: Cannot connect to redis://:**@redis:6379/0: WRONGPASS invalid username-password pair or user is disabled..
Run Code Online (Sandbox Code Playgroud)
但是如果我直接在docker-compose.yml没有环境变量的情况下指定密码,那么它就可以工作。
我正在使用在3个不同的码头工人上运行的应用程序:
整个应用程序启动 docker-compose up
真的很简单:)
我想使它可扩展并独立于其他应用程序运行整个应用程序的多个实例(3个docker镜像),然后放置一个负载均衡器haproxy,将重定向到其中一个应用程序.
我看到我可以使用,docker-compose up --scale blablabla但问题是我可以扩展容器,但我真的想保持不同的"应用程序"独立.
例如,如果我想要3个版本的应用程序,我将有9个泊坞窗图像等.
我看到我们可以在docker中运行docker --privilege(允许我在里面创建一个带有3个docker的docker)但是我在Stack Overflow上读到它不是一个合适的解决方案.
你有解决方案吗?或至少阅读一些文件.
我听说Kubernetes可能是一个解决方案,但我不确定.我看了(在堆栈上)
如果您需要紧密绑定多个容器,您可能需要查看在其"pods"中运行docker的Kubernetes
我正在尝试使用 LetsEncrypt 和 Nginx 添加 https。我已经添加了 certbot 并且它运行成功。然后,当尝试运行 Nginx 服务器时,我收到此错误。
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: error: /etc/nginx/conf.d/default.conf is not a file or does not exist
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2020/11/21 06:24:07 [emerg] 1#1: open() "/etc/letsencrypt/options-ssl-nginx.conf" failed (2: No such file or directory) in /etc/nginx/conf.d/nginx.conf:23
nginx: [emerg] open() "/etc/letsencrypt/options-ssl-nginx.conf" failed (2: No such file or directory) in /etc/nginx/conf.d/nginx.conf:23
Run Code Online (Sandbox Code Playgroud)
这是我的 …
我正在部署一个带有gunicorn、nginx 和supervisor 的Django 应用程序。
我目前使用 celery 运行后台工作人员:
$ python manage.py celery worker
Run Code Online (Sandbox Code Playgroud)
这是我的gunicorn配置:
#!/bin/bash
NAME="hello_app" # Name of the application
DJANGODIR=/webapps/hello_django/hello # Django project directory
SOCKFILE=/webapps/hello_django/run/gunicorn.sock # we will communicte using this unix socket
USER=hello # the user to run as
GROUP=webapps # the group to run as
NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
DJANGO_SETTINGS_MODULE=hello.settings # which settings file should Django use
DJANGO_WSGI_MODULE=hello.wsgi # WSGI module name
echo "Starting $NAME as `whoami`"
# Activate the virtual environment …Run Code Online (Sandbox Code Playgroud) docker ×3
nginx ×2
certbot ×1
django ×1
gunicorn ×1
kubernetes ×1
lets-encrypt ×1
redis ×1
worker ×1