rails-sqlserver / tiny_tds

TinyTDS - Simple and fast FreeTDS bindings for Ruby using DB-Library.
Other
605 stars 191 forks source link

How to build for use in AWS-LAMBDA #534

Closed bigjoevtrj closed 1 year ago

bigjoevtrj commented 1 year ago

DOCKER amazon/aws-sam-cli-build-image-ruby2.7

[entrypoint.sh] curl ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.2.tar.gz --output freetds-1.2.tar.gz tar xvzf freetds-1.2.tar.gz cd freetds-1.2 ./configure --prefix=/usr/local --with-tdsver=7.3 make make install cd .. mkdir -p var/task bundle install --path var/task rm -rf freetds*

result when executing lambda: { "errorMessage": "libsybdb.so.5: cannot open shared object file: No such file or directory - /var/task/vendor/bundle/ruby/2.7.0/gems/tiny_tds-2.1.5/lib/tiny_tds/tiny_tds.so", "errorType": "Init", "stackTrace": [ "/var/lang/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in require'", "/var/lang/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:inrequire'", "/var/task/vendor/bundle/ruby/2.7.0/gems/tiny_tds-2.1.5/lib/tiny_tds.rb:61:in <top (required)>'", "/var/lang/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:159:inrequire'", "/var/lang/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:159:in rescue in require'", "/var/lang/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:39:inrequire'", "/var/task/src/utils/mssql-db.service.rb:1:in <top (required)>'", "/var/task/src/db-seed.rb:25:inrequire_relative'", "/var/task/src/db-seed.rb:25:in <top (required)>'", "/var/lang/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:inrequire'", "/var/lang/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require'" ] }

bigjoevtrj commented 1 year ago

for those who may have the same problem the solution is bellow:

!/bin/bash

curl ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.2.tar.gz --output freetds-1.2.tar.gz tar xvzf freetds-1.2.tar.gz cd freetds-1.2 ./configure --prefix=/usr/local --with-tdsver=7.3 make make install cd .. bundle install --path vendor/bundle mkdir -p /var/task/vendor/bundle/ruby/2.7.0/gems/tiny_tds-2.1.5/ports/x86_64-pc-linux-gnu/lib/ cp /usr/local/lib/libsybdb. /var/task/vendor/bundle/ruby/2.7.0/gems/tiny_tds-2.1.5/ports/x86_64-pc-linux-gnu/lib/ rm -rf freetds