質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

【Docker・unicorn】pidファイルが消せない

miyu_wl
chisso

総合スコア1

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

2回答

0リアクション

0クリップ

438閲覧

投稿2022/08/15 06:04

編集2022/08/15 06:42

発生している問題

unicorn を用いて web アプリを立ち上げるために docker-compose up -d を実行すると、以下のようなログが表示され、EXITされてしまいます。
Docker を強制的に終了させてしまったためにpidファイルが残ったままになっていることが原因だと考えられます。

terminal

bundler: failed to load command: unicorn (/usr/local/bundle/bin/unicorn) /usr/local/bundle/gems/unicorn-6.1.0/lib/unicorn/http_server.rb:206:in `pid=': Already running on PID:1 (or pid=/var/run/unicorn/unicorn.pid is stale) (ArgumentError)

試したこと

problem1ディレクトリ内で rm コマンドを用いて pid ファイルを消そうとしましたが、

  • /var/run/unicorn/unicorn.pid
  • /tmp/pids/server.pid
  • tmp/pids/server.pid

が存在せず、消すことができませんでした。

ディレクトリの構成

problem1
┣ app
┃┗ ruby
┃ ┣ app.rb
┃ ┣ config.ru
┃ ┣ Dockerfile
┃ ┣ Gemfile
┃ ┗ unicorn.rb
┣ mysql
┃┣ conf.d
┃┃┗ mysql.cnf
┃┣ 0_init.sql
┃┗ my.cnf

関係がありそうなコード

--- Dockerfile ---

docker

FROM ruby:3.0.2 LABEL maintainer="****" WORKDIR /app COPY Gemfile /app/Gemfile RUN bundle install COPY . /app #EXPOSE 4567 CMD ["bundle", "exec", "unicorn", "-c", "unicorn.rb"]

--- docker-compose.yml ---

yml

version: "3" networks: front: ipam: config: - subnet: 10.0.0.0/16 back: ipam: config: - subnet: 10.10.0.0/16 volumes: socket: driver: local log: driver: local docroot: driver: local services: app: container_name: minimal_sns_app build: app/ruby volumes: - socket:/var/run/unicorn/ networks: - front - back environment: TZ: "Asia/Tokyo" db: image: mysql:latest container_name: db hostname: db networks: - back volumes: - ./mysql/my.cnf:/etc/mysql/my.cnf - ./mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf - ./mysql/0_init.sql:/docker-entrypoint-initdb.d/0_init.sql environment: MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' MYSQL_DATABASE: app TZ: "Asia/Tokyo"

--- unicorn.rb ---

ruby

listen '/var/run/unicorn/unicorn.sock' pid '/var/run/unicorn/unicorn.pid'

--- config.ru ---

ru

require File.expand_path '../app.rb', __FILE__ run App

どなたかご教授いただけますと幸いです。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです