Почему мои развернутые файлы иногда исчезают? (Я думаю, что Apache ест их) - PullRequest
1 голос
/ 25 сентября 2008

Вот моя ситуация:

  • Windows Server
  • Apache
  • CruiseControl

Последний шаг моих сценариев развертывания CruiseControl копирует сборку в папку Apache htdocs, в папку "demos" (я думаю, это называется "горячим развертыванием"?)

Все хорошо и здорово, за исключением того, что SOMETIMES (не часто, но бывает достаточно, чтобы это меня беспокоило), папка demos не содержит файлы, которые я создал! Старый ушел, а нового нет, просто исчез.

У меня такое чувство, что если я попытаюсь перезаписать файл, пока кто-то в Интернете скачивает его, Apache просто удалит его после завершения загрузки? Я не знаю, это не имеет никакого смысла.

Я искал повсюду и не мог найти даже подсказки ... давайте посмотрим, насколько хорошо это сообщество StackOverflow действительно! :)

Вот цель "deploy" в моем скрипте 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>   

Ответы [ 3 ]

1 голос
/ 03 октября 2008

Я бы предложил создать резервную копию старых файлов перед копированием новых файлов. Назовите старые файлы с отметкой времени, когда они были заменены. Выполнение этого и последующий просмотр того, что находится в каталоге в следующий раз, скорее всего, даст вам подсказку, где искать дальше.

0 голосов
/ 06 октября 2008

Я думаю, что проблема может быть где-то в файле CruiseControl. Скорее всего, происходит то, что процесс CruiseControl приводит в порядок файлы, но, возможно, из-за блокировки файлов (возможно, Apache) не может записать файлы обратно в эту папку.

В любом случае, поскольку «развертывание», по-видимому, является последним шагом, предыдущие шаги, вероятно, очищают каталог, и развертывание не выполняется, и в конце шагов ваша папка становится пустой.

0 голосов
/ 26 сентября 2008

Apache не будет удалять содержимое каталога. Что-то в сценарии удаления содержимого было бы моим предположением. Сценарий создает какую-либо резервную копию? Возможно, он перемещает содержимое в резервную папку, а затем копирует сборку.

Вы можете добавить немного безопасности в эту папку, чтобы предотвратить ее удаление. Может быть, тогда где-нибудь всплывет ошибка, которая даст вам представление о том, что удобно удалять из каталога. :) Я думаю, это в сценарии.

...