前提・実現したいこと
現在、ポートフォリオ作成のための掲示板アプリのようなものを製作しています。
先日まではCloud9上で開発を行なっていたのですが、環境構築の勉強と色んな技術に触れてみたいと思い、Dockerを用いてローカル環境での開発に取り組みはじめました。
・Linux/HTML/CSS/Ruby/Ruby on Rails/SQL/Git等は学習済みです
・Railsを使ったポートフォリオ作成に取り掛かって2ヶ月目です
発生している問題・エラーメッセージ
現在AWSのCodeDeployを用いて、EC2のインスタンスにRailsアプリケーションをデプロイできるように取り組んでおります。
appspec.yml
で指定したファイルにあるスクリプトを実行してdocker-compose
コマンドを実行しようとしていたのですが以下のようなエラーが出てdocker-compose
コマンドを実行することが出来ませんでした。色々調査をしてみましたが原因が分からないためアドバイスを頂けないでしょうか。以下がCodeDeploy上のエラーメッセージです。
エラーコード ScriptFailed スクリプト名 scripts/before.sh メッセージ Script at specified location: scripts/before.sh run as user ec2-user failed with exit code 127
LifecycleEvent - BeforeInstall Script - scripts/before.sh [stderr]/opt/codedeploy-agent/deployment-root/c29b02a2-728e-4a9f-a173-34e0b13b6951/d-5IW8N44J0/deployment-archive/scripts/before.sh: line 3: docker-compose: command not found
試したこと・追加情報
・EC2のインスタンスにDockerとdocker-composeはインストールされていて、自分が接続してdocker-compose
コマンドを実行する分には問題なく動きます。
・権限の問題かと考えsudo usermod -a -G docker ec2-user
は試しましたが変化はありませんでした
appspec.yml
version: 0.0 os: linux files: - source: / destination: /var/www/MyApp permissions: - object: /var/www/MyApp pattern: "**" mode: 775 hooks: BeforeInstall: - location: scripts/before.sh timeout: 300 runas: ec2-user AfterInstall: - location: scripts/after.sh timeout: 300 runas: ec2-user
before.sh
#!/bin/bash cd /var/www/MyApp docker-compose down
回答1件
あなたの回答
tips
プレビュー