環境
macOS BigSur11.6
docker
ruby 2.6.5
Rails 6.0.4
前提・実現したいこと
画像ウイルスチェックのclamavを導入していますが、画像アップロード時に下記のようなログを出して、停止してしまいます。
dockerダッシュボードでのclamavのエラー
/bootstrap.sh: line 35: 18 Killed clamd
ログのエラー
rescue500 => SocketError : getaddrinfo: Name does not resolve /web/app/app/services/clamav_service.rb:4:in `initialize'
チームメンバーには、この現象は起こっておらず、私の環境のみに発現するエラーとなり、開発環境を作り直してもエラーが出ます。
チームメンバーはwindowsを使っており、私のみがmacを使っていますが、このことも影響があるのでしょうか?
コード
sample-app/docker-compose.yml
version: '3.4' services: db: container_name: 'sample-app-db' image: mysql:5.7.10 environment: MYSQL_ROOT_PASSWORD: password TZ: "Asia/Tokyo" ports: - "33006:3306" volumes: - ./containers/mysql_data:/var/lib/mysql command: --innodb-use-native-aio=0 nginx: container_name: 'sample-app-nginx' build: ./nginx command: > /bin/bash -c "envsubst '$$NGINX_SERVER_NAME $$NGINX_SERVER_PORT' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf && nginx -g 'daemon off;'" environment: - TZ=Asia/Tokyo - NGINX_SERVER_NAME=dev.sample-app.jp - NGINX_SERVER_PORT=80 ports: - 80:80 - 443:443 volumes: - tmp:/web/app/tmp - public:/web/app/public depends_on: - web logging: driver: json-file options: max-file: '1' max-size: 1m web: &app_base container_name: 'sample-app-web' build: context: . args: ASSETS_PRECOMPILE: 'false' environment: RAILS_ENV: development DB_USER: root DB_PASSWORD: password DB_HOST: db DB_DATABASE: sample-app_development USER_OTP_SECRET: xxxxxxxxxxxxxxxxxx CLAMD_TCP_HOST: clamav CLAMD_TCP_PORT: 3310 TZ: "Asia/Tokyo" command: sh -c "rm -f /web/app/tmp/pids/server.pid && bundle exec rails s" tty: true stdin_open: true volumes: - ./web:/web/app - bundle:/usr/local/bundle - tmp:/web/app/tmp - public:/web/app/public links: - db - clamav depends_on: - db - clamav logging: driver: json-file options: max-file: '1' max-size: 3m webpack: <<: *app_base container_name: 'sample-app-webpack' command: "ruby bin/webpack-dev-server" ports: - "3035:3035" depends_on: - web tty: false stdin_open: false smtp: image: schickling/mailcatcher ports: - "1080:1080" - "1025:1025" clamav: image: mkodockx/docker-clamav ports: - 3310 environment: - TZ=Asia/Tokyo volumes: - clamav:/var/lib/clamav - ./containers/clamav/clamd.conf:/etc/clamd/clamd.conf:ro - ./containers/clamav/freshclam.conf:/etc/clamd/freshclam.conf:ro logging: driver: json-file options: max-file: '1' max-size: 1m volumes: mysql_data: bundle: tmp: public: clamav: driver: local
sample-app/web/app/services/clamav_service.rb
class ClamavService def self.connect ClamAV::Connection.new( socket: TCPSocket.new(Settings.clamav.tcp_host, Settings.clamav.tcp_port), wrapper: ClamAV::Wrappers::NewLineWrapper.new ) end def self.connect_client ClamAV::Client.new self.connect end end
sample-app/web/config/settings/development.yml
application: url: https://dev.sample-app.ai/ notification: cc: xxxxxxxxxxxxxxxx@gmail.com clamav: tcp_host: <%= ENV['CLAMD_TCP_HOST'] %> tcp_port: <%= ENV['CLAMD_TCP_PORT'] %>
あなたの回答
tips
プレビュー