У меня есть приложение на основе Microservices, и сервисы работают нормально, если я разверну их на хост-компьютере.Но теперь я хотел бы изучить Docker, поэтому я начал использовать контейнеры на компьютере с Linux.Вот пример файла Docker, он действительно прост:
FROM openjdk:11-jdk-slim
MAINTAINER BeszterceKK
COPY ./tao-elszamolas-config.jar /usr/src/taoelszamolas/tao-elszamolas-config.jar
WORKDIR /usr/src/taoelszamolas
ENV SPRING_PROFILES_ACTIVE prod
EXPOSE 9001
ENTRYPOINT ["java", "-jar", "tao-elszamolas-config.jar", "-Dlog4j.configurationFile=file:/tao-elszamolas/services/tao-config/log4j2- prod.xml", "-DlogFileLocation=/tao-elszamolas/logs"]
Моя проблема в том, что я пытаюсь записать свой журнал загрузочных приложений Spring на хост-компьютер.Вот почему я использую объемы данных.В конце команда запускает контейнер:
docker run -d --name=tao-elszamolas-config-server --publish=9001:9001 -v /tao-elszamolas/logs:/tao-elszamolas/logs -v /tao-elszamolas/services/tao-config/log4j2-prod.xml:/tao-elszamolas/services/tao-config/log4j2-prod.xml tao-elszamolas-config:latest
Но в более долгосрочной перспективе все службы перейдут в "docker-compose".Это только для теста, что-то вроде подтверждения концепции.
Первый вопрос: почему он не записывает журнал в нужное место?(В одном из определенных томов.) Это то, что я установил в XML-файле конфигурации Log4j2.Если я использую конфигурационный XML на локальном компьютере без Docker, все работает нормально.Когда я вхожу в контейнер, я вижу смонтированные тома и могу «CD» войти в него.И я также могу сделать это:
touch something.txt
Таким образом, файл будет создан и его можно увидеть как с контейнера, так и с хост-машины.Что я делаю неправильно?Я думаю, что приложение может выбрать конфигурацию журнала, потому что, когда я просто устанавливаю внутреннюю папку в качестве местоположения файла журнала, оно регистрирует содержимое внутри контейнера.
И я также устанавливаю разрешения длявесь том (и его дочерние элементы) до 777 временно, чтобы проверить, были ли проблемы с разрешениями.Но нет.Буду очень признателен за любую помощь!
Мой второй вопрос, есть ли какой-нибудь хороший веб-инструмент на linux, где я могу управлять своими контейнерами.Запустите их, затем остановитесь и т. Д. Я гуглил это и нашел некоторые, но не уверен, какой из них лучший и бесплатный для базовых нужд, а какой достаточно безопасный.