Как решить код ошибки Docker 139 на Манджаро? - PullRequest
0 голосов
/ 04 февраля 2019

Я недавно установил Manjaro на свой компьютер, и я делаю несколько тестов.Я пытался собрать и запустить Docker, который отлично работает на Windows, Mac OS, Ubuntu и т. Д.

Но когда я запускаю sudo docker-compose up, я получаю ошибку.Кажется, все работает нормально, кроме конца:

Successfully built d72aa4c69ad6
Successfully tagged code_interface:latest
WARNING: Image for service interface was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating code_db_1 ... done
Creating code_web_1 ... done
Creating code_interface_1 ... done
Attaching to code_db_1, code_web_1, code_interface_1
code_db_1 exited with code 139

Вот как выглядит мой docker-compose.yml:

db:
  image: mongo:3.0.2
  ports:
    - "27017:27017"

web:
  build: X
  ports:
    - "5000:5000"
  links:
    - db

interface:
  build: Y
  ports:
    - "8080:8080"
  links:
    - web

Любая идея, почему я получаю эту ошибку или как ее исправитьэто?

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Это может быть связано с версией ядра вашего компьютера, как описано в этой проблеме :

Это, вероятно, связано с изменениями в связывании vsyscall в ядре 4.11,Попробуйте загрузить ядро ​​с помощью vsyscall = emulate и посмотрите, поможет ли это.Это работает нормально в конфигурации ядра linuxkit 4.11 без проблем, так что это связано с конфигурацией.

Попробуйте реализовать решение из этого комментария :

Привет, указав эту команду в / etc / default / grub:

GRUB_CMDLINE_LINUX_DEFAULT = "vsyscall = emulate"

Сообщите нам, если это решит проблему для вас.

0 голосов
/ 05 февраля 2019

Наконец-то все заработало.

Мне пришлось обновить ядро ​​до последней версии (с 4.19.16-1 до 4.20.3-1).Хотя на самом деле не знаю почему.

0 голосов
/ 04 февраля 2019

Насколько я знаю, ошибка 139 является ошибкой сегментации, вызванной аппаратным обеспечением с защитой памяти.он говорит вам, что ваша программа пытается получить доступ к ограниченной области памяти.возможно, вы пытаетесь получить доступ к постоянной памяти, получили разыменование нулевого указателя в любом месте вашего кода или произвели переполнение стека.

...