В настоящее время я работаю над приложением, которое использует серверную часть Spring Boot на базе Java 17. В качестве инструмента сборки я использую Maven. Интерфейсная часть представляет собой приложение на основе ReactJS.
В своей среде разработки я использую Oracle JDK java 17.0.4. Когда я создаю и выполняю функции отчетов этого приложения, они работают должным образом.
Но когда те же функции проверяются в докеризованной среде для одного сценария загрузки отчета Excel, происходит сбой с ошибкой. В серверном журнале указаны некоторые ошибки, кратко упомянутые ниже.
Обнаруженное сообщение об ошибке представляет собой ошибку Java UnsatisfiedLinkError, связанную с библиотекой libfontmanager.so и ее зависимостью libfreetype.so. .6. Похоже, эта ошибка возникает, когда Java не может загрузить необходимую собственную библиотеку (libfreetype.so.6), необходимую для функционирования системы шрифтов Java.
Как решить эту проблему в средах Docker? Требуются ли какие-либо изменения в используемом файле Docker или версии Java?
Связанный файл Docker
# === Stage 1: Build the Spring Boot app ===
FROM maven:3.6.3-openjdk-17 AS build
WORKDIR /app
COPY pom.xml .
COPY src/ /app/src/
RUN mvn package -DskipTests
# === Stage 2: Create the final Docker image ===
FROM openjdk:17-alpine
WORKDIR /app
COPY --from=build /app/target/backend-0.0.1-SNAPSHOT.jar app.jar
# Set environment variables for MySQL configuration
ENV MYSQL_HOST=localhost
ENV MYSQL_PORT=****** //Omitted
ENV MYSQL_DATABASE=db
ENV MYSQL_USERNAME=****** //Omitted
ENV MYSQL_PASSWORD=************ //Omitted
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
Краткие сообщения об ошибках набора перечислены ниже.
2023-10-05T07:19:23.875Z ОШИБКА 1 --- [nio-8080-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet]: Servlet.service() для сервлета [dispatcherServlet] в контексте с путем [] выдал исключение [ошибка отправки обработчика: java.lang.UnsatisfiedLinkError: /opt/openjdk-17/lib/libfontmanager.so: ошибка при загрузке общей библиотеки libfreetype.so.6: такого файла или каталога нет (необходимо для /opt/openjdk-17/lib/libfontmanager.so) ] с основной причиной
java.lang.UnsatisfiedLinkError: /opt/openjdk-17/lib/libfontmanager.so: ошибка при загрузке общей библиотеки libfreetype.so.6 : такого файла или каталога нет (необходим для /opt/openjdk-17/lib/libfontmanager.so)
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:310) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:280) ~[na:na]
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2392) ~[na:na]
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:808) ~[na:na]
at java.base/java.lang.System.loadLibrary(System.java:1893) ~[na:na]
at java.desktop/sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:57) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) ~[na:na]
at java.desktop/sun.font.FontManagerNativeLibrary.(FontManagerNativeLibrary.java:32) ~[na:na]
at java.desktop/sun.font.SunFontManager$1.run(SunFontManager.java:270) ~[na:na]
at java.desktop/sun.font.SunFontManager$1.run(SunFontManager.java:268) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) ~[na:na]
at java.desktop/sun.font.SunFontManager.(SunFontManager.java:268) ~[na:na]
at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
at java.base/java.lang.Class.forName(Class.java:466) ~[na:na]
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:82) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) ~[na:na]
at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74) ~[na:na]
at java.desktop/java.awt.Font.getFont2D(Font.java:526) ~[na:na]
at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2279) ~[na:na]
at java.desktop/java.awt.font.TextLayout.singleFont(TextLayout.java:469) ~[na:na]
at java.desktop/java.awt.font.TextLayout.(TextLayout.java:530) ~[na:na]
at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:285) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:259) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:244) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:523) ~[poi-ooxml-5.0.0.jar!/:5.0.0]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:505) ~[poi-ooxml-5.0.0.jar!/:5.0.0]
at com.antarctica21.backend.forecasting.service.PlanService.saveWOSRZipExcelFile(PlanService.java:3352) ~[classes!/:0.0.1-SNAPSHOT]
at com.antarctica21.backend.forecasting.service.PlanService.getWeekOversSalesExcelDetails(PlanService.java:3244) ~[classes!/:0.0.1-SNAPSHOT]
java.lang.NoClassDefFoundError: не удалось инициализировать класс sun.awt.X11FontManager
at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
at java.base/java.lang.Class.forName(Class.java:466) ~[na:na]
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:82) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) ~[na:na]
at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74) ~[na:na]
at java.desktop/java.awt.Font.getFont2D(Font.java:526) ~[na:na]
at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2279) ~[na:na]
at java.desktop/java.awt.font.TextLayout.singleFont(TextLayout.java:469) ~[na:na]
at java.desktop/java.awt.font.TextLayout.(TextLayout.java:530) ~[na:na]
at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:285) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:259) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:244) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:523) ~[poi-ooxml-5.0.0.jar!/:5.0.0]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:505) ~[poi-ooxml-5.0.0.jar!/:5.0.0]
at com.antarctica21.backend.forecasting.service.PlanService.saveWOSRZipExcelFile(PlanService.java:3352) ~[classes!/:0.0.1-SNAPSHOT]
at com.antarctica21.backend.forecasting.service.PlanService.getWeekOversSalesExcelDetails(PlanService.java:3244) ~[classes!/:0.0.1-SNAPSHOT]
at com.antarctica21.backend.forecasting.service.PlanService.getWeekOversSalesExcelDetilsByCriteria(PlanService.java:541) ~[classes!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-6.0.7.jar!/:6.0.7]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698) ~[spring-aop-6.0.7.jar!/:6.0.7]
at com.antarctica21.backend.forecasting.service.PlanService$$SpringCGLIB$$0.getWeekOversSalesExcelDetilsByCriteria() ~[classes!/:0.0.1-SNAPSHOT]
at com.antarctica21.backend.forecasting.controller.PlanController.getWeekOversSalesExcelDetilsByCriteria(PlanController.java:190) ~[classes!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
Обновление по проблеме
Обновлен файл Docker для обработки ошибки, выявленной из-за ограничения образа Openjdk, как предложено в комментариях нижеДля установки необходимых пакетов (freetype и fontconfig) файл Dockerfile был обновлен следующим образом:
# Install required libraries
RUN apk add --no-cache freetype fontconfig
Я также обновил зависимости Apache POI до последних версий, как было предложено.
org.apache.poi
poi
5.2.4
org.apache.poi
poi-ooxml
5.2.4
Обновление по проблеме 2
Когда вышеупомянутые обновления были внесены в файл Docker, существующая ошибка была исправлена, но из-за этого появилась другая проблема. ограничениям, связанным со шрифтами.
java. lang.NullPointerException: невозможно загрузить из короткого массива, поскольку "sun.awt.FontConfiguration.head" имеет значение null.
Обновлен файл Docker, как указано ниже, и проблема решена.RUN apk add --no-cache msttcorefonts-installer fontconfig
RUN update-ms-fonts
Подробнее здесь: https://stackoverflow.com/questions/773 ... pplication
Нужна помощь по поводу ошибки в Dockerized версии приложения. ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1727285428
Anonymous
В настоящее время я работаю над приложением, которое использует серверную часть Spring Boot на базе Java 17. В качестве инструмента сборки я использую Maven. Интерфейсная часть представляет собой приложение на основе ReactJS.
В своей среде разработки я использую Oracle JDK java 17.0.4. Когда я создаю и выполняю функции отчетов этого приложения, они работают должным образом.
Но когда те же функции проверяются в докеризованной среде для одного сценария загрузки отчета Excel, происходит сбой с ошибкой. В серверном журнале указаны некоторые ошибки, кратко упомянутые ниже.
[b]Обнаруженное сообщение об ошибке представляет собой ошибку Java UnsatisfiedLinkError, связанную с библиотекой libfontmanager.so и ее зависимостью libfreetype.so. .6. Похоже, эта ошибка возникает, когда Java не может загрузить необходимую собственную библиотеку (libfreetype.so.6), необходимую для функционирования системы шрифтов Java.[/b]
Как решить эту проблему в средах Docker? Требуются ли какие-либо изменения в используемом файле Docker или версии Java?
[b]Связанный файл Docker[/b]
# === Stage 1: Build the Spring Boot app ===
FROM maven:3.6.3-openjdk-17 AS build
WORKDIR /app
COPY pom.xml .
COPY src/ /app/src/
RUN mvn package -DskipTests
# === Stage 2: Create the final Docker image ===
FROM openjdk:17-alpine
WORKDIR /app
COPY --from=build /app/target/backend-0.0.1-SNAPSHOT.jar app.jar
# Set environment variables for MySQL configuration
ENV MYSQL_HOST=localhost
ENV MYSQL_PORT=****** //Omitted
ENV MYSQL_DATABASE=db
ENV MYSQL_USERNAME=****** //Omitted
ENV MYSQL_PASSWORD=************ //Omitted
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
[b]Краткие сообщения об ошибках набора перечислены ниже.[/b]
[b]2023-10-05T07:19:23.875Z ОШИБКА 1 --- [nio-8080-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet]: Servlet.service() для сервлета [dispatcherServlet] в контексте с путем [] выдал исключение [ошибка отправки обработчика: java.lang.UnsatisfiedLinkError: /opt/openjdk-17/lib/libfontmanager.so: ошибка при загрузке общей библиотеки libfreetype.so.6: такого файла или каталога нет (необходимо для /opt/openjdk-17/lib/libfontmanager.so) ] с основной причиной[/b]
[b]java.lang.UnsatisfiedLinkError: /opt/openjdk-17/lib/libfontmanager.so: ошибка при загрузке общей библиотеки libfreetype.so.6 : такого файла или каталога нет (необходим для /opt/openjdk-17/lib/libfontmanager.so)[/b]
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:310) ~[na:na]
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:280) ~[na:na]
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2392) ~[na:na]
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:808) ~[na:na]
at java.base/java.lang.System.loadLibrary(System.java:1893) ~[na:na]
at java.desktop/sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:57) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) ~[na:na]
at java.desktop/sun.font.FontManagerNativeLibrary.(FontManagerNativeLibrary.java:32) ~[na:na]
at java.desktop/sun.font.SunFontManager$1.run(SunFontManager.java:270) ~[na:na]
at java.desktop/sun.font.SunFontManager$1.run(SunFontManager.java:268) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) ~[na:na]
at java.desktop/sun.font.SunFontManager.(SunFontManager.java:268) ~[na:na]
at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
at java.base/java.lang.Class.forName(Class.java:466) ~[na:na]
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:82) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) ~[na:na]
at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74) ~[na:na]
at java.desktop/java.awt.Font.getFont2D(Font.java:526) ~[na:na]
at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2279) ~[na:na]
at java.desktop/java.awt.font.TextLayout.singleFont(TextLayout.java:469) ~[na:na]
at java.desktop/java.awt.font.TextLayout.(TextLayout.java:530) ~[na:na]
at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:285) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:259) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:244) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:523) ~[poi-ooxml-5.0.0.jar!/:5.0.0]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:505) ~[poi-ooxml-5.0.0.jar!/:5.0.0]
at com.antarctica21.backend.forecasting.service.PlanService.saveWOSRZipExcelFile(PlanService.java:3352) ~[classes!/:0.0.1-SNAPSHOT]
at com.antarctica21.backend.forecasting.service.PlanService.getWeekOversSalesExcelDetails(PlanService.java:3244) ~[classes!/:0.0.1-SNAPSHOT]
[b]java.lang.NoClassDefFoundError: не удалось инициализировать класс sun.awt.X11FontManager[/b]
at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
at java.base/java.lang.Class.forName(Class.java:466) ~[na:na]
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:82) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) ~[na:na]
at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74) ~[na:na]
at java.desktop/java.awt.Font.getFont2D(Font.java:526) ~[na:na]
at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2279) ~[na:na]
at java.desktop/java.awt.font.TextLayout.singleFont(TextLayout.java:469) ~[na:na]
at java.desktop/java.awt.font.TextLayout.(TextLayout.java:530) ~[na:na]
at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:285) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:259) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:244) ~[poi-5.0.0.jar!/:5.0.0]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:523) ~[poi-ooxml-5.0.0.jar!/:5.0.0]
at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:505) ~[poi-ooxml-5.0.0.jar!/:5.0.0]
at com.antarctica21.backend.forecasting.service.PlanService.saveWOSRZipExcelFile(PlanService.java:3352) ~[classes!/:0.0.1-SNAPSHOT]
at com.antarctica21.backend.forecasting.service.PlanService.getWeekOversSalesExcelDetails(PlanService.java:3244) ~[classes!/:0.0.1-SNAPSHOT]
at com.antarctica21.backend.forecasting.service.PlanService.getWeekOversSalesExcelDetilsByCriteria(PlanService.java:541) ~[classes!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-6.0.7.jar!/:6.0.7]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698) ~[spring-aop-6.0.7.jar!/:6.0.7]
at com.antarctica21.backend.forecasting.service.PlanService$$SpringCGLIB$$0.getWeekOversSalesExcelDetilsByCriteria() ~[classes!/:0.0.1-SNAPSHOT]
at com.antarctica21.backend.forecasting.controller.PlanController.getWeekOversSalesExcelDetilsByCriteria(PlanController.java:190) ~[classes!/:0.0.1-SNAPSHOT]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
[b]Обновление по проблеме[/b]
Обновлен файл Docker для обработки ошибки, выявленной из-за ограничения образа Openjdk, как предложено в комментариях нижеДля установки необходимых пакетов (freetype и fontconfig) файл Dockerfile был обновлен следующим образом:
# Install required libraries
RUN apk add --no-cache freetype fontconfig
Я также обновил зависимости Apache POI до последних версий, как было предложено.
org.apache.poi
poi
5.2.4
org.apache.poi
poi-ooxml
5.2.4
[b]Обновление по проблеме 2[/b]
Когда вышеупомянутые обновления были внесены в файл Docker, существующая ошибка была исправлена, но из-за этого появилась другая проблема. ограничениям, связанным со шрифтами.
java. lang.NullPointerException: невозможно загрузить из короткого массива, поскольку "sun.awt.FontConfiguration.head" имеет значение null.
Обновлен файл Docker, как указано ниже, и проблема решена.RUN apk add --no-cache msttcorefonts-installer fontconfig
RUN update-ms-fonts
Подробнее здесь: [url]https://stackoverflow.com/questions/77352407/need-help-regarding-an-error-in-the-dockerized-version-of-the-application[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия