Другой слой косвенности:
for i in $(eval echo {1..$END}); do
∶
Можете ли вы запустить
docker logs <container name> -f
и получить информацию о том, что является результатом попытки SSL-рукопожатия?
Вероятно, вам нужен сертификат SSL в вашем контейнере для подключения к серверу с SSL. Вы можете добавить сертификат к своему образу из вашего Dockerfile:
FROM openjdk:8-jre-alpine
COPY target/app.jar /opt/spring-cloud/lib/
COPY certs/ssl.cer $JAVA_HOME/lib/security
RUN \
cd $JAVA_HOME/lib/security \
&& keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias edlscert -file edls.cer
ENTRYPOINT ["/usr/bin/java"]
CMD ["-jar", "/opt/spring-cloud/lib/app.jar"]
VOLUME /var/lib/spring-cloud/config-repo
EXPOSE 9101
Однако у этого подхода есть ограничения, и лучшим решением, вероятно, является предоставление .cer во время развертывания как часть docker-compose file. В любом случае вам понадобится сертификат для связи с внешним сервисом по SSL / HTTPS.
Я решил свою проблему, установив значение параметра docker-compose.yml
network_mode на host
.
docker-compose.yml:
version: '3'
services:
server:
restart: always
build:
context: .
dockerfile: dockerfiles/ServerDockerfile
volumes:
- .:/sp # mount repo dir to container for development
ports:
- "8090:8090"
network_mode: "host"