Я хочу запустить несколько изображений веб-приложений с NGINX.
Итак, я написал docker-compose.yml
, который собирает образ nginx и запускает контейнеры nodejs.
У меня есть сертификат SSL, выданный letsencrypt.
Файлы сертификатов находятся в /etc/letsencrypt/live/mydomain.com/
Я хочу, чтобы контейнер NGINX читал файлы.
Итак, я добавил volumes: - /etc/letsencrypt/live/mydomain.com/:/etc/cert:ro
к docker-compose.yml
.
Но nginx.conf не может прочитать файлы.
Я обнаружил, что каталог /etc/cert
не существует, и он подключен как тип привязки.
Я хочу знать, как установить тома в файле docker-compose.yml для чтения внутри контейнеров.
докер-compose.yml
version: '2.0'
services:
nginx:
container_name: manager
build: ./nginx
links:
- app-1:app-1
...
ports:
- 80:80
- 443:443
volumes:
- /etc/letsencrypt/live/mydomain.com/:/etc/cert:ro
depends_on:
- app-1
...
app-1:
container_name: audio-1
image: audio:test
ports:
- 80
...
nginx.conf
worker_processes 4;
events { worker_connections 1024; }
http {
upstream node-app {
least_conn;
server app-1:80 weight=10 max_fails=3 fail_timeout=60s;
...
}
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /etc/cert/fullchain.pem;
ssl_certificate_key /etc/cert/privkey.pem;
location / {
proxy_pass http://node-app;
...
}
}
}
ошибка
nginx: [emerg] BIO_new_file("/etc/cert/fullchain.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/cert/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
Диспетчер проверки докеров
...
"Mounts": [
{
"Type": "bind",
"Source": "/etc/letsencrypt/live/luvber.kr",
"Destination": "/etc/cert",
"Mode": "ro",
"RW": false,
"Propagation": "rprivate"
}
],
...
Спасибо