相关疑难解决方法(0)

通过环境变量 docker-compose redis 密码

我试图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没有环境变量的情况下指定密码,那么它就可以工作。

environment-variables redis docker docker-compose

48
推荐指数
4
解决办法
7万
查看次数

运行多个docker撰写

我正在使用在3个不同的码头工人上运行的应用程序:

  • 第一个是使用REST API调用的服务器HTTP
  • 第二个是rabbitmq
  • 第三个是工人

整个应用程序启动 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

docker kubernetes docker-compose

12
推荐指数
2
解决办法
8997
查看次数

Nginx LetsEncrypt 错误“/etc/letsencrypt/options-ssl-nginx.conf”没有这样的文件或目录

我正在尝试使用 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)

这是我的 …

nginx docker docker-compose lets-encrypt certbot

8
推荐指数
1
解决办法
7253
查看次数

Celery 和 Gunicorn 工人之间的区别?

我正在部署一个带有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)

django nginx worker gunicorn

5
推荐指数
1
解决办法
9998
查看次数