docker run 加载共享库 libstdc++.so.6 和 libgcc_s.so.1 时出错

rld*_*rld 12 elixir docker phoenix-framework docker-compose alpine-linux

我正在尝试使用 docker 运行部署,并且使用以下命令成功运行:

\n

docker build -t romenigld/blog-prod .

\n

但是当我尝试使用这个命令时:

\n

docker run --env-file .env -p 8080:4000 romenigld/blog-prod

\n

我收到此错误:

\n
Error loading shared library libstdc++.so.6: No such file or directory (needed by /app/erts-12.0.2/bin/beam.smp)\nError loading shared library libgcc_s.so.1: No such file or directory (needed by /app/erts-12.0.2/bin/beam.smp)\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_begin_catch: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZSt24__throw_out_of_range_fmtPKcz: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _Znwm: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZSt20__throw_length_errorPKc: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_guard_release: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEm: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __popcountdi2: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZSt17__throw_bad_allocv: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_end_catch: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_guard_acquire: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZSt19__throw_logic_errorPKc: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_rethrow: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _Unwind_Resume: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZdlPvm: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv120__si_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __cxa_pure_virtual: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv117__class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv117__class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv117__class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv117__class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv117__class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv117__class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: _ZTVN10__cxxabiv121__vmi_class_type_infoE: symbol not found\nError relocating /app/erts-12.0.2/bin/beam.smp: __gxx_personality_v0: symbol not found\n
Run Code Online (Sandbox Code Playgroud)\n

我的 Dockerfile:

\n
FROM elixir:alpine AS build\n\n# install build dependencies\nRUN apk add --no-cache build-base npm git python3\n\n# prepare build dir\nWORKDIR /app\n\n# install hex + rebar\nRUN mix local.hex --force && \\\n    mix local.rebar --force\n\n# set build ENV\nENV MIX_ENV=prod\n\n# install mix dependencies\nCOPY mix.exs mix.lock ./\nCOPY config config\nRUN mix do deps.get, deps.compile\n\n# build assets\nCOPY assets/package.json assets/package-lock.json ./assets/\nRUN npm --prefix ./assets ci --progress=false --no-audit --loglevel=error\n\nCOPY priv priv\nCOPY assets assets\nRUN npm run --prefix ./assets deploy\nRUN mix phx.digest\n\n# compile and build release\nCOPY lib lib\nRUN mix do compile, release\n\n# prepare release image\nFROM alpine:3.9 AS app\n\nRUN apk add --no-cache openssl ncurses-libs\n\nWORKDIR /app\n\nRUN chown nobody:nobody /app\n\nUSER nobody:nobody\n\nCOPY --from=build --chown=nobody:nobody /app/_build/prod/rel/blog ./\n\nENV HOME=/app\n\nCMD ["bin/blog", "start"]\n\n
Run Code Online (Sandbox Code Playgroud)\n

我的docker_dev_start.sh

\n
mix ecto.drop\nmix ecto.setup\nexec mix phx.server\n
Run Code Online (Sandbox Code Playgroud)\n

我的docker-compose.yml

\n
version: "3"\nservices:\n  app:\n    restart: on-failure # vai restartar na falha(outras op\xc3\xa7\xc3\xb5es [no, always, unless-stopped(quando for\xc3\xa7a a a\xc3\xa7\xc3\xa3o)])\n    build:\n      context: .\n      dockerfile: Dockerfile.dev\n    command: /bin/sh docker_dev_start.sh\n    ports:\n      - "8080:4000"\n    depends_on:\n      - db\n    links:\n      - db\n  db:\n    restart: always\n    image: postgres\n    environment:\n      POSTGRES_PASSWORD: postgres\n      POSTGRES_USER: postgres\n    ports:\n      - "5432:5432"\n
Run Code Online (Sandbox Code Playgroud)\n

Dan*_*iel 16

根据您用于部署的内容,像crypto(phoenix 使用 crypto)这样的包使用共享库来实现功能。对于高山,我通常安装:

RUN apk upgrade --no-cache && \
    apk add --no-cache postgresql-client bash openssl libgcc libstdc++ ncurses-libs
Run Code Online (Sandbox Code Playgroud)