Docker не видит двоичный файл в PATH внутри контейнера

Используйте модуль csv python для чтения и записи запятых или файлов с разделителями табуляции. Модуль csv является предпочтительным, потому что он дает вам хороший контроль над цитированием.

Например, здесь приведенный вами пример:

import csv
data = ["value %d" % i for i in range(1,4)]

out = csv.writer(open("myfile.csv","w"), delimiter=',',quoting=csv.QUOTE_ALL)
out.writerow(data)

Производит:

"value 1","value 2","value 3"
2
задан Red 13 July 2018 в 08:41
поделиться

1 ответ

protobuf связан с библиотекой glibc , а альпийский использует musl (и более старый альпийский использовали uclibc ). Они несовместимы. Ошибка, которую вы видите, возникает из компоновщика, не находящего библиотеку libc /lib64/ld-linux-x86-64.so.2. Вы можете проверить это, выполнив команду ldd :

$ ldd /bin/protoc 
    /lib64/ld-linux-x86-64.so.2 (0x7faa1a641000)
    libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7faa1a641000)
    libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7faa1a641000)
    libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7faa1a641000)
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /bin/protoc)

Файл существует, и PATH в порядке. Чтобы исправить это, вы можете установить glibc на alpine (не рекомендуется) или просто перейти к обычному контейнеру linux.

@edit: Мой старый ответ не был прав, bash или sh не отправили исходный /etc/profile по умолчанию , только при наличии опции -l.

2
ответ дан Kamil Cuk 17 August 2018 в 13:19
поделиться
  • 1
    So your env variable will be overwritten. Тогда почему echo $PATH внутри контейнера показывает правильный $ PATH? – Red 13 July 2018 в 09:11
  • 2
    Och, просто протестировал это, и bash и sh по умолчанию не задают / etc / profile (только с опцией -l). Так что дело не в этом, это должно быть муз, и протобуф, вероятно, нуждается в libc. – Kamil Cuk 13 July 2018 в 09:16
  • 3
    Правильно, обновим ответ, так что это проще. – Kamil Cuk 13 July 2018 в 09:18
  • 4
    Хорошо, обновил ответ. – Kamil Cuk 13 July 2018 в 09:28