Я пытаюсь докернизировать существующее приложение 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