docker初心者です
dockerでrails6/nginx/vue.js/mysqlでアプリケーションの立ち上げを行なっています。
現状
nginxを導入し、docker-compose up --buildをする部分で下記のエラーが表示されています。
導入する以前はエラーは出ませんでした。
error
1docker-entrypoint.sh: 38: exec: bundle: not found
nginxの導入で行ったこと
・nginxフォルダーの作成、Dockerfile,nginx.confファイルの作成、編集
・docker-compose.ymlの書き換え
・entrypoint.shファイル作成、編集
・api(rails)のdockerfileの編集
試したこと
・apiのdockerfileでRUN gem install bundlerを追加
・upではなく、build出来るか確認。docker-compose buildは通ること確認
dockercompose
1 2version: '3' 3 4services: 5 web: 6 build: 7 context: . 8 dockerfile: nginx/Dockerfile 9 command: bundle exec rails s -p 5000 -b '0.0.0.0' 10 ports: 11 - '5000:5000' 12 depends_on: 13 - db 14 volumes: 15 - ./api:/app 16 - bundle:/usr/local/bundle 17 tty: true 18 stdin_open: true 19 db: 20 image: mysql:5.7 21 volumes: 22 - mysql_data:/var/lib/mysql/ 23 environment: 24 MYSQL_ROOT_PASSWORD: password 25 ports: 26 - '3306:3306' 27 front: 28 build: ./front 29 volumes: 30 - ./front:/app 31 ports: 32 - '8888:8888' 33 tty: true 34 stdin_open: true 35 command: npm run serve 36 37volumes: 38 mysql_data: 39 bundle:
entrypoint
1#!/bin/bash 2set -e 3rm -f /api/app/tmp/pids/server.pid 4exec "$@"
Dockerfile
1#nginx 2FROM nginx:1.20.1 3 4ENV TZ Asia/Tokyo 5RUN echo "${TZ}" > /etc/timezone 6 7RUN rm -f /etc/nginx/conf.d/* 8 9ADD nginx/nginx.conf /etc/nginx/conf.d/nginx.conf 10 11CMD /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf 12
conf
1#nginx.conf 2 3upstream webapp { 4 # ソケット通信したいのでpuma.sockを指定 5 server unix:///app/tmp/sockets/puma.sock; 6} 7 8server { 9 listen 80; 10 # ドメインもしくはIPを指定 11 server_name localhost; 12 13 access_log /var/log/nginx/access.log; 14 error_log /var/log/nginx/error.log; 15 16 # ドキュメントルートの指定 17 root /webapp/public; 18 19 client_max_body_size 100m; 20 error_page 404 /404.html; 21 error_page 505 502 503 504 /500.html; 22 try_files $uri/index.html $uri @app; 23 keepalive_timeout 5; 24 25 # リバースプロキシ関連の設定 26 location @app { 27 proxy_set_header X-Real-IP $remote_addr; 28 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 29 proxy_set_header Host $http_host; 30 proxy_pass http://app; 31 } 32}
Dockerfile
1#api 2FROM ruby:3.0.1 3 4RUN apt-get update -qq && \ 5 apt-get install -y build-essential \ 6 libpq-dev \ 7 nodejs \ 8 && rm -rf /var/lib/apt/lists/* 9 10RUN mkdir /app 11ENV APP_ROOT /app 12WORKDIR $APP_ROOT 13 14ADD ./Gemfile $APP_ROOT/Gemfile 15ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock 16RUN bundle install 17 18ADD . /app 19 20# Add a script to be executed every time the container starts. 21COPY entrypoint.sh /usr/bin/ 22RUN chmod +x /usr/bin/entrypoint.sh 23VOLUME /app/tmp 24ENTRYPOINT ["entrypoint.sh"] 25EXPOSE 5000
どなたか知見のある方、もしくは記載されているサイトを知っている方居ましたらご教授いただきたいです。
よろしくお願いします。
追記
docker-composeのbuildの部分を変更前の記述に戻すと正しくupが通るようになります。
build時のnginxの指定がおかしいのでしょうか。
dockercompose
1変更前 2version: '3' 3services: 4 web: 5 build: ./api 6 7変更後 8version: '3' 9services: 10 web: 11 build: 12 context: . 13 dockerfile: nginx/Dockerfile
追記2
回答2件
あなたの回答
tips
プレビュー