お世話になっております。
現在dockerでタイトル取りの環境を作っているのですが db:create
の段階でどうもエラーが出ていて起動ができない状況です。
エラー内容は以下のとおりです。
~/codes/project/hoge (master) -> 11:32 AM Thu Jan 17 $ docker-compose up Creating network "hoge_default" with the default driver Creating hoge-dev-mysql ... done Creating hoge-dev-rails ... done Attaching to hoge-dev-mysql, hoge-dev-rails hoge-dev-mysql | 2019-01-17 02:32:43 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). hoge-dev-mysql | 2019-01-17 02:32:43 0 [Note] mysqld (mysqld 5.6.42-log) starting as process 1 ... hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] Plugin 'FEDERATED' is disabled. hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Using atomics to ref count buffer pool pages hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: The InnoDB memory heap is disabled hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Memory barrier is not used hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Compressed tables use zlib 1.2.11 hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Using Linux native AIO hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Using CPU crc32 instructions hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Initializing buffer pool, size = 128.0M hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Completed initialization of buffer pool hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Highest supported file format is Barracuda. hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: 128 rollback segment(s) are active. hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: Waiting for purge to start hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] InnoDB: 5.6.42 started; log sequence number 1626007 hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] Server hostname (bind-address): '*'; port: 3306 hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] IPv6 is available. hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] - '::' resolves to '::'; hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] Server socket created on IP: '::'. hoge-dev-mysql | 2019-01-17 02:32:43 1 [Warning] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] Event Scheduler: Loaded 0 events hoge-dev-mysql | 2019-01-17 02:32:43 1 [Note] mysqld: ready for connections. hoge-dev-mysql | Version: '5.6.42-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL) hoge-dev-rails | == Installing dependencies == hoge-dev-rails | The Gemfile's dependencies are satisfied hoge-dev-rails | hoge-dev-rails | == Preparing database == hoge-dev-rails | rails aborted! hoge-dev-rails | LoadError: Error loading shared library libmysqlclient.so.18: No such file or directory (needed by /usr/local/bundle/gems/mysql2-0.4.9/lib/mysql2/mysql2.so) - /usr/local/bundle/gems/mysql2-0.4.9/lib/mysql2/mysql2.so hoge-dev-rails | /usr/local/bundle/gems/mysql2-0.4.9/lib/mysql2.rb:31:in `require' hoge-dev-rails | /usr/local/bundle/gems/mysql2-0.4.9/lib/mysql2.rb:31:in `<top (required)>' hoge-dev-rails | /root/hoge/config/application.rb:17:in `<top (required)>' hoge-dev-rails | /root/hoge/rakefile:4:in `require_relative' hoge-dev-rails | /root/hoge/rakefile:4:in `<top (required)>' hoge-dev-rails | /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:20:in `block in perform' hoge-dev-rails | /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:18:in `perform' hoge-dev-rails | /usr/local/bundle/gems/railties-5.1.4/lib/rails/command.rb:46:in `invoke' hoge-dev-rails | /usr/local/bundle/gems/railties-5.1.4/lib/rails/commands.rb:16:in `<top (required)>' hoge-dev-rails | /root/hoge/bin/rails:9:in `require' hoge-dev-rails | /root/hoge/bin/rails:9:in `<top (required)>' hoge-dev-rails | /usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load' hoge-dev-rails | /usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call' hoge-dev-rails | /usr/local/bundle/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call' hoge-dev-rails | /usr/local/bundle/gems/spring-2.0.2/lib/spring/client.rb:30:in `run' hoge-dev-rails | /usr/local/bundle/gems/spring-2.0.2/bin/spring:49:in `<top (required)>' hoge-dev-rails | /usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load' hoge-dev-rails | /usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>' hoge-dev-rails | /root/hoge/bin/spring:15:in `<top (required)>' hoge-dev-rails | bin/rails:3:in `load' hoge-dev-rails | bin/rails:3:in `<main>' hoge-dev-rails | (See full trace by running task with --trace) hoge-dev-rails | hoge-dev-rails | == Command ["bin/rails db:create"] failed == hoge-dev-rails | !! exit status 1 hoge-dev-rails exited with code 1
この部分(LoadError: Error loading shared library libmysqlclient.so.18: No such file or directory (needed by /usr/local/bundle/gems/mysql2-0.4.9/lib/mysql2/mysql2.so) - /usr/local/bundle/gems/mysql2-0.4.9/lib/mysql2/mysql2.so
)だということはわかるのですが、どうやって解決すればいいかわからず。。。
よろしくお願いいたします。。。
以下にDockerfileとdocker-compose.ymlを追記いたします。
Dockerfile.development
FROM starefossen/ruby-node:2-8-alpine AS build-env RUN mkdir -p /root/hoge WORKDIR /root/hoge RUN set -x \ && apk update \ && apk add --no-cache --virtual build-dependencies \ build-base \ mysql-dev \ git \ ca-certificates \ openssl ## tools ENV DOCKERIZE_VERSION=0.5.0 ENTRYKIT_VERSION=0.4.0 RUN wget https://github.com/jwilder/dockerize/releases/download/v$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-v$DOCKERIZE_VERSION.tar.gz \ && tar -xvzf dockerize-alpine-linux-amd64-v$DOCKERIZE_VERSION.tar.gz \ # entrykit && wget https://github.com/progrium/entrykit/releases/download/v${ENTRYKIT_VERSION}/entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \ && tar -xvzf entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz \ ## install gems COPY Gemfile* ./ RUN echo 'gem: --no-rdoc --no-ri' >> /.gemrc \ && gem install bundler \ && bundle install -j 4 FROM ruby:2-alpine RUN mkdir -p /root/hoge WORKDIR /root/hoge COPY --from=build-env /usr/local/bundle /usr/local/bundle COPY --from=build-env /root/hoge/dockerize /usr/local/bin/ COPY --from=build-env /root/hoge/entrykit /usr/local/bin/ COPY --from=build-env /root/hoge/mc /usr/local/bin/ RUN chmod +x /usr/local/bin/entrykit \ && entrykit --symlink \ && chmod +x /usr/local/bin/mc \ && apk update \ && apk add --no-cache mariadb-client imagemagick git EXPOSE 80
docker-compose.yml
version: '2' services: rails: container_name: hoge-dev-rails build: context: . dockerfile: Dockerfile.development volumes: - .:/root/hoge ports: - 3000:3000 environment: DB_HOST: mysql DB_NAME: hoge_development DB_USER: root DB_PASSWORD: mysql-password entrypoint: - prehook - rm -f tmp/pids/server.pid - -- - prehook - bin/setup depends_on: - mysql tty: true stdin_open: true mysql: container_name: hoge-dev-mysql image: mysql:5.6 ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: mysql-password volumes: - ./mysql:/etc/mysql/conf.d - mysql_volume:/var/lib/mysql volumes: mysql_volume: driver: local
回答2件
あなたの回答
tips
プレビュー