docker-composeファイルの記述形式について分からない点がありまして、
こちらのサイトに記載のコードを例に質問させていただきます。
例えば以下Dockerfileとdocker-compose.ymlについてですが、それぞれrailsプロセスの起動コマンドが記述されています。
Dockerfile
1FROM ruby:2.5 2RUN apt-get update -qq && apt-get install -y nodejs postgresql-client 3WORKDIR /myapp 4COPY Gemfile /myapp/Gemfile 5COPY Gemfile.lock /myapp/Gemfile.lock 6RUN bundle install 7COPY . /myapp 8 9# コンテナー起動時に毎回実行されるスクリプトを追加 10COPY entrypoint.sh /usr/bin/ 11RUN chmod +x /usr/bin/entrypoint.sh 12ENTRYPOINT ["entrypoint.sh"] 13EXPOSE 3000 14 15# メインプロセスの起動 16CMD ["rails", "server", "-b", "0.0.0.0"]
compose
1version: "3.9" 2services: 3 db: 4 image: postgres 5 volumes: 6 - ./tmp/db:/var/lib/postgresql/data 7 environment: 8 POSTGRES_PASSWORD: password 9 web: 10 build: . 11 command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 12 volumes: 13 - .:/myapp 14 ports: 15 - "3000:3000" 16 depends_on: 17 - db 18
CMD命令ってたしか最後のCMDに上書きされるはずなので、docker-compose.ymlにのみ記述がされていれば正常に起動しますよね?
何故Dockerfileにもrails起動コマンドが記述されているのでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。