docker -составить не удается: «нет такого файла или каталога», но файл существует - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь докернизировать существующее приложение ruby на рельсах. Я смог пройти процесс сборки и собрать без каких-либо ошибок. Однако, когда я пытаюсь docker-compose up, я получаю сообщение об ошибке, что файл .so не существует. Когда я запускаю docker-compose run web ls -l /usr/src/app/lib файл явно там.

Я работаю на машине Windows 10, но я использую контейнеры Linux docker. Я уже сделал dos2 unix для моего Dockerfile, docker -compose.yml и моей точки входа. sh. Я не пытался сделать это для всех файлов в этой системе, хотя. Я извлек репо из git, и моя конфигурация настроена на git config --global core.autocrlf false

Как я могу избежать ошибки «файл не существует», когда файл действительно существует?

Вот что у меня есть:

docker -compose.yml

version: '3.7'
services:
  web:
    build: .
    volumes:
      - .:/usr/src/app
    ports:
      - "3000:3000"

Dockerfile

FROM ruby:2.5

# -y is automatic yes to prompts, and qq is quiet quiet. No output except for errors.
RUN apt-get update -yqq \
    && apt-get install -yqq \
        build-essential \
        libc6-dev \
        libpq-dev \
        libnss3-dev \
        libgconf-2-4 \
        qt5-default \
        libqt5webkit5-dev \
        freetds-dev \
        nodejs \
        libmapscript-ruby \
    && apt-get -q clean \
    && rm -rf /var/lib/apt/lists

# set the working directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# Set the environment for now...
ENV RAILS_ENV development

# Copy Gemfiles
COPY Gemfile /usr/src/app/Gemfile

RUN gem install bundler
RUN bundle install
RUN bundle install

# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/src/app/entrypoint.sh
RUN chmod +x /usr/src/app/entrypoint.sh

COPY . /usr/src/app

# Start the main process.
CMD ["/usr/src/app/entrypoint.sh"]

точка входа. sh

#!/bin/bash

rails server

Вот вывод моей ошибки, а затем я делаю ls -l сразу после этого.

PS C:\Users\<USERNAME>\source\repos\ruby\my_rails_app> docker-compose up
Recreating my_rails_app_web_1 ... done
Attaching to my_rails_app_web_1
web_1  | /usr/local/bundle/gems/ruby_mapscript-0.3.0/lib/mapscript/mapscript_extensions.rb:3:in 'require': libruby-2.0.so.2.0: cannot open shared object file: No such file or directory - /usr/src/app/lib/mapscript.so (LoadError)
web_1  |        from /usr/local/bundle/gems/ruby_mapscript-0.3.0/lib/mapscript/mapscript_extensions.rb:3:in '<top (required)>'
web_1  |        from /usr/local/bundle/gems/ruby_mapscript-0.3.0/lib/ruby_mapscript.rb:2:in 'require'
web_1  |        from /usr/local/bundle/gems/ruby_mapscript-0.3.0/lib/ruby_mapscript.rb:2:in '<top (required)>'
web_1  |        from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:74:in 'require'
web_1  |        from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:74:in 'block (2 levels) in require'
web_1  |        from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:69:in 'each'
web_1  |        from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:69:in 'block in require'
web_1  |        from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in 'each'
web_1  |        from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler/runtime.rb:58:in 'require'
web_1  |        from /usr/local/bundle/gems/bundler-2.1.4/lib/bundler.rb:174:in 'require'
web_1  |        from /usr/src/app/config/application.rb:13:in '<top (required)>'
web_1  |        from /usr/local/bundle/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:88:in 'require'
web_1  |        from /usr/local/bundle/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:88:in 'block in server'
web_1  |        from /usr/local/bundle/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:85:in 'tap'
web_1  |        from /usr/local/bundle/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:85:in 'server'
web_1  |        from /usr/local/bundle/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:49:in 'run_command!'
web_1  |        from /usr/local/bundle/gems/railties-5.0.7.2/lib/rails/commands.rb:18:in '<top (required)>'
web_1  |        from script/rails:6:in 'require'
web_1  |        from script/rails:6:in '<main>'
my_rails_app_web_1 exited with code 1
PS C:\Users\<USERNAME>\source\repos\ruby\my_rails_app> docker-compose run web ls -l /usr/src/app/lib
total 524
drwxrwxrwx 2 root root      0 Jan 15 14:25 assets
-rwxr-xr-x 1 root root 533672 Jan 14 16:46 mapscript.so
drwxrwxrwx 2 root root      0 Jan 15 14:25 tasks
PS C:\Users\<USERNAME>\source\repos\ruby\my_rails_app> docker-compose run web ls -l /usr/src/app
total 183
-rwxr-xr-x 1 root root   788 Jan 15 14:24 Capfile
-rwxr-xr-x 1 root root   927 Jan 16 17:12 Dockerfile
-rwxr-xr-x 1 root root  2467 Jan 16 16:15 Gemfile
-rwxr-xr-x 1 root root 10224 Jan 15 17:01 Gemfile.lock
-rwxr-xr-x 1 root root  8228 Jan 15 14:24 Gemfile.lock.old
-rwxr-xr-x 1 root root  1983 Jan 15 14:24 Gemfile.old
-rwxr-xr-x 1 root root  6131 Jan 15 14:24 README.rdoc
-rwxr-xr-x 1 root root   271 Jan 15 14:24 Rakefile
drwxrwxrwx 2 root root     0 Jan 14 16:46 app
-rwxr-xr-x 1 root root  3721 Jan 16 15:48 bill_pdf.rb
drwxrwxrwx 2 root root     0 Jan 16 15:48 bootstrap
drwxrwxrwx 2 root root     0 Jan 16 15:49 config
-rwxr-xr-x 1 root root   156 Jan 15 14:24 config.ru
drwxrwxrwx 2 root root     0 Jan 15 14:25 db
drwxrwxrwx 2 root root     0 Jan 15 14:25 doc
-rwxr-xr-x 1 root root   112 Jan 16 17:11 docker-compose.yml
-rwxr-xr-x 1 root root    26 Jan 16 15:37 entrypoint.sh
-rwxr-xr-x 1 root root   524 Jan 15 14:24 fix_image.rb
drwxrwxrwx 2 root root     0 Jan 14 16:46 fusenh
drwxrwxrwx 2 root root     0 Jan 15 14:25 lib
-rwxr-xr-x 1 root root 27619 Jan 14 16:46 lightower.png
-rwxr-xr-x 1 root root  7430 Jan 14 16:46 lightower_cc_logo_A.png
drwxrwxrwx 2 root root     0 Jan 15 14:25 log
-rwxr-xr-x 1 root root     0 Jan 15 14:24 lt.css
drwxrwxrwx 2 root root     0 Jan 14 16:46 node_modules
drwxrwxrwx 2 root root     0 Jan 15 14:25 public
-rwxr-xr-x 1 root root 42550 Jan 14 16:46 sample_partial_invoice.pdf
-rwxr-xr-x 1 root root 42550 Jan 14 16:46 sample_usf_document.pdf
drwxrwxrwx 2 root root     0 Jan 15 14:40 script
drwxrwxrwx 2 root root     0 Jan 15 14:40 spec
-rwxr-xr-x 1 root root   814 Jan 15 14:24 test.pdf
drwxrwxrwx 2 root root     0 Jan 16 15:48 tmp
drwxrwxrwx 2 root root     0 Jan 14 16:47 vendor
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...