Приложение который я поднял на docker контейнере не может подключиться к базе данных запущенный локально, то есть не внутри контейнера (localhost:3000)
Мой Dockerfile:
ENV APP_NAME news_admin_panel-1.0.0.zip
ENV APP_DIR news_admin_panel-1.0.0
ENV JAVA_OPTS -server -Xms128M -Xmx512M -Xss1M -XX:+CMSClassUnloadingEnabled
ENV RUN_SCRIPT news_admin_panel
ENV LOG_DIR /logs/news_admin_panel
ENV LOG_ARCHIVE_DIR /logs/archive/api
RUN mkdir -p /root/config/
#COPY ./src/main/resources/*logback.xml /root/config/
COPY ./src/main/resources/*.conf /root/config/
WORKDIR /root
COPY ./target/universal/$APP_NAME /root/
RUN unzip -q $APP_NAME
WORKDIR /root/$APP_DIR/bin
CMD chmod +x $RUN_SCRIPT
CMD ./$RUN_SCRIPT -Dconfig.file=${config} -Dlogback.configurationFile=${logback}
команда:
docker run -p 8080:8080 --env config=/root/config/application.conf news_admin_panel
А если добавить --net=host, она работает.
docker run --net=host -p 8080:8080 --env config=/root/config/application.conf news_admin_panel
Что нужно добавить в Dockerfile, чтобы при обращении к порту 3000, он обращался к тому порту, что лежит снаружи контейнера и не было нужды делать net=host