Если вы хотите, чтобы копия файлов была видна в контейнере, используйте том подключения с привязкой (так называемый том хоста) вместо именованного тома.
Предполагая, что ваш файл docker-compose.yml находится в корневом каталоге нужного вам места в / usr / src / app, вы можете изменить ваш docker-compose.yml следующим образом:
version: "3.3"
services:
nodejs:
build: ./nodejs-server
ports:
- "8001:8080"
links:
- db:db
env_file:
- ./.env-example
volumes:
- .:/usr/src/app
db:
build: ./mysql-server
volumes:
- ./mysql-server/data:/docker-entrypoint-initdb.d #A folder /mysql-server/data with a .sql file needs to exist
env_file:
- ./.env-example
В какой-то момент в цепочке байты в кодировке UTF-8 декодируются с помощью Latin1. Из списка ваших настроек кажется, что это происходит на сервере "character_set_server". Не зная, как были получены эти значения, их сложно интерпретировать.
Проверьте значение системного свойства "file.encoding". Если это не «UTF-8», то вам необходимо явно указать «UTF-8» в качестве кодировки символов всякий раз, когда вы декодируете байты в символы. Например, когда вы вызываете конструктор String
с байтом []
или используете InputStreamReader
.
Лучше всего явно указывать кодировки символов, вместо того, чтобы полагаться на кодировку платформы по умолчанию.
Вы можете установить для свойства file.encoding
вашей JVM значение UTF-8, поэтому все локали чувствительный API / encoding будет рассматривать декодированные строки как UTF8.
Например, вы можете установить его в командной строке, которая запускает ваше приложение Java:
java -Dfile.encoding=UTF-8 ....
Вы также можете обратиться к этому вопросу SO для Полное объяснение настройки Tomcat.