1

これが私の状況です:

  • Windows サーバー
  • アパッチ
  • クルーズコントロール

私の CruiseControl デプロイ スクリプトの最後のステップでは、ビルドを Apache の htdocs フォルダーの "demos" フォルダーにコピーします (これは "ホット デプロイ" と呼ばれていると思いますか?)

時々(一般的ではありませんが、私を悩ませるのに十分なことが起こります)、ビルドしたファイルが demos フォルダーに含まれていないことを除いて、すべてがうまく機能しています。古いものはなくなり、新しいものはそこになく、ただ消えてしまいました。

私の直感では、Web 上の誰かがファイルをダウンロードしているときにファイルを上書きしようとすると、ダウンロードが完了した後に Apache がそのファイルを削除するだけでしょうか? わかりません、意味がありません。

どこを見てもヒントすら見つからなかった...このStackOverflowコミュニティが本当にどれほど優れているか見てみましょう! :)

私のANTスクリプトの「展開」ターゲットは次のとおりです。

<target name="deploy" depends="revertVersionFile">
    <copy todir="${deploy.dir}">
        <fileset dir="${bin.dir}"/>
    </copy>
    <copy todir="${deploy.dir}">
        <fileset dir="${bin.dir}"/>
    </copy>
    <available file="${deploy.dir}/MockupsLive.swf" property="mockupsFile"/>
    <fail unless="mockupsFile" message="MockupsLive doesn't exist!"/>       
    <available file="${deploy.dir}/skins/sketch/sketch.swf" property="skinFile"/>
    <fail unless="skinFile" message="sketch.swf doesn't exist!"/>       
</target>   
4

3 に答える 3

1

新しいファイルをコピーする前に、古いファイルのバックアップを作成することをお勧めします。それらが置き換えられたときのタイムスタンプで古いファイルに名前を付けます。これを行ってから、次に失敗したときにディレクトリの内容を確認すると、次にどこを見ればよいかの手がかりが得られる可能性が高くなります。

于 2008-10-03T16:02:53.843 に答える
0

Apacheはディレクトリの内容を削除しません。スクリプトの何かが内容を削除しているのは私の推測です。スクリプトは何らかのバックアップを作成しますか?たぶん、コンテンツをバックアップフォルダーに移動してから、ビルドをコピーします。

そのフォルダにセキュリティを少し追加して、そのフォルダが削除されないようにすることができます。たぶん、エラーがどこかにポップアップして、ディレクトリを便利に削除しているものについてのアイデアを与えるでしょう。:)私の推測はスクリプトにあります。

于 2008-09-25T23:01:15.107 に答える
0

問題は CruiseControl ファイルのどこかにあると思います。最も可能性が高いのは、CruiseControl プロセスがどこかでファイルを片付けていることですが、(おそらく Apache による) ファイルのロックが原因で、ファイルをそのフォルダーに書き戻すことができません。

いずれにせよ、「デプロイ」が最後のステップのように見えるため、前のステップでおそらくディレクトリがクリアされ、デプロイの実行に失敗し、ステップの最後にフォルダーが空のままになります。

于 2008-10-06T14:35:31.757 に答える