docker-composeにhttps-portalを組み込む時のportsとDOMAINSの書き方
docker-composeで起動しているnginxに、https-portalを使ってhttps化するには、portsとDOMAINSはどのように記述すればよいでしょうか。
まず、DOckerでnginxを起動する部分として、下記のdocker-compose.ymlを作成し、
version: '3.7'
nginx:
image: nginx
ports:
- 18080:80
volumes:
- /home/hoge/wkDocker-compose:/usr/share/nginx/html
docker-composeコマンドでコンテナを起動し
[hoge wkDocker-compose]$ docker-compose up -d
Creating wkdocker-compose_nginx_1 ... done
/etc/hostsに追記して、ブラウザでアクセスすると、
[hoge wkDocker-compose]$ grep test /etc/hosts
127.0.0.1 test.nginx.com
[hoge wkDocker-compose]$ firefox localhost:18080/helllo.html
[hoge wkDocker-compose]$ firefox http://test.nginx.com:18080/helllo.html
指定したhtmlファイル、helllo.htmlが表示されました。
この状態のdocker-compose.ymlにhttps-portalを追加してhttps化しようとしています。
https-portalを組み込む時のportsとDOMAINSの指定は何を書けば良いのでしょうか?
こちらの記事(Qiita「https-portalで簡単https対応!」)を参考に、下記の記述を追加してみました。
version: '3.7'
services:
https:
image: steveltn/https-portal:1
ports:
- "80:80"
- "443:443"
environment:
DOMAINS: test.nginx.com -> http://nginx:18080
STAGE: local
nginx:
image: nginx
ports:
- 18080:18080
volumes:
- /home/tuti/wkDocker-compose:/usr/share/nginx/html
これでコンテナを起動すると、「port is already allocated」のエラーになってしまいました。
[hoge wkDocker-compose]$ docker-compose up -d
Creating wkdocker-compose_https_1 ...
Creating wkdocker-compose_https_1 ... error
WARNING: Host is already in use by another container
ERROR: for wkdocker-compose_https_1 Cannot start service https: driver failed programming external connectivity on endpoint wkdocker-compose_https_1 (7ac4968f12f5a0d9f6839de53a210b3d8857bb24b92b826c2e82fd4ae860f22e): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in usCreating wkdocker-compose_nginx_1 ... done
ERROR: for https Cannot start service https: driver failed programming external connectivity on endpoint wkdocker-compose_https_1 (7ac4968f12f5a0d9f6839de53a210b3d8857bb24b92b826c2e82fd4ae860f22e): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
ERROR: Encountered errors while bringing up the project.