1

git と一緒にアプリケーションのデプロイに AWS codedeploy を使用しています。appspec.yml を作成しました。ファイル セクションでは、ファイルを別のフォルダー (例:/home/ec2-user/sample.war) からコピー先にコピーする必要があります。


version: 0.0
os: linux
files:
   - source: /home/ec2-user/deploy/sample.war
     destination: /usr/share/tomcat6/webapps/

ファイル セクションの source プロパティは、codedeploy エージェント ディレクトリ内のファイルのみを検索します (例: /opt/codedeploy-agent/deployment-root/1d4de60d-99c1-4e40-bd14-335b6f8b5633/d-sfjksdjfkl/home/ec-user/sample.戦争)。AWS のドキュメントによると、それは正しいです。ec2 インスタンスの別の場所からファイルをコピーする他のオプションはありますか? または実行時にaws codedeployエージェントフォルダを見つけるために利用できる変数はありますか?

4

2 に答える 2

0

これを行うには、フックスクリプトを使用できると思います。ファイルがバンドルに含まれていないようです。cp を実行する簡単なスクリプトを用意できます。「BeforeInstall」イベント中にスクリプトを実行して、スクリプトをコピーできるのが最善だと思います。

appsec ファイルにフックを設定する方法については、こちらをご覧ください。

邦渓

于 2015-04-17T00:29:49.783 に答える
0

アプリのインストール前、インストール後、インストール中に CodeDeploy が行うことを完全にカスタマイズできます。次のように、フック セクションでコピーするファイルを指定するだけです。

appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html/dbex.ml
hooks:
  BeforeInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: root
  AfterInstall:
    - location: scripts/after_install.sh
      timeout: 300
      runas: root
  ApplicationStart:
    - location: scripts/start_server.sh
      timeout: 300
      runas: root
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 300
      runas: root

あなたがしたいことは、次のように AfterInstall フックで after_install.sh ファイルを編集することです:

after_install.sh

#!/bin/sh
sudo cp /path/to/file /your/app/folder/
于 2017-04-09T13:51:14.760 に答える