Azure 网络应用程序中的 Symfony cache:clear,具有 GitHub 个操作
Symfony cache:clear in Azure web app with GitHub Actions
我正在将 symfony 应用程序部署到 Azure Linux PHP 7.4 网络应用程序。我使用 How to archive files in artifact for github workflow actions in order to fix this warning? 中建议的方法来简化部署。
所以一切都很好,但偶尔网站会失败。我追踪到一个陈旧的缓存。要解决这个问题,我必须通过 SSH 连接到 Web 应用程序并使用
清除缓存
$ php bin/console cache:clear
详细查看 Github 操作构建和部署日志,我看到 cache:clear 在构建 VM 上执行,这没有帮助。
我正在使用标准 php 构建和部署脚本,添加了 zip/unzip 步骤...
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions
name: Build and deploy PHP app to Azure Web App - xxx
on:
push:
branches:
- master
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
- name: Check if composer.json exists
id: check_files
uses: andstor/file-existence-action@v1
with:
files: 'composer.json'
- name: Run composer install if composer.json exists
if: steps.check_files.outputs.files_exists == 'true'
run: composer validate --no-check-publish && composer install --prefer-dist --no-progress
- name: Zip artifact for deployment
run: zip -r release.zip * .env .htaccess public/.htaccess
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v2
with:
name: php-app
path: release.zip
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'staging'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v2
with:
name: php-app
- name: Unzip artifact for deployment
run: unzip release.zip
- name: 'Deploy to Azure Web App'
uses: azure/webapps-deploy@v2
id: deploy-to-webapp
with:
app-name: 'xxxx'
slot-name: 'staging'
publish-profile: ${{ secrets.AZUREAPPSERVICE_xxxxx }}
package: .
部署到 Web 应用程序后如何使清除缓存命令生效?
根据上述问题陈述,我们了解到您希望清除 Web 应用缓存 post 部署。
为了实现这一点,您可以添加一个应用设置 WEBSITE_LOCAL_CACHE_OPTION=Always 来帮助您清除网络应用的本地缓存。
对于任何应用服务,其相关内容(代码文件、资源等)都托管在共享内容文件夹中,以便提供应用服务的所有功能,如负载平衡等。因此,如果有2 个 VM 配置为负载平衡,然后只有一个共享位置托管应用服务的所有内容。
当这些 Web 应用程序引用内容文件夹时,可能会出现延迟问题(尽管 Azure 会处理其中的大部分问题),这可能会稍微降低网站的性能。在这样的 Performance-critical 应用程序中,我们可以利用“Azure App Service Local Cache”的功能。
有关详细信息,请参阅 Azure App Service Local Cache & this 博客 post 上的此 Azure 文档。
对...
原来清除缓存的方法很简单。使用缓存清除命令作为“启动命令”
所以我部署并通过 SSH 连接到 Web 应用程序并检查 /home/site/wwwroot/var/cache/staging 瞧!所有文件都是新创建的!
一开始我也有过这种想法,但看起来确实很麻烦。我真的想要一种更简洁的方法来做到这一点。我尝试将启动命令添加到部署脚本但出现此错误...
所以我无法添加启动命令,因为有一个发布配置文件。
那么为什么这么简单的问题花了这么长时间才在 SO 上回答?不止一个完全不相关的建议答案。所有这些答案都与我的问题有共同点,比如“缓存”和“php”。
我正在将 symfony 应用程序部署到 Azure Linux PHP 7.4 网络应用程序。我使用 How to archive files in artifact for github workflow actions in order to fix this warning? 中建议的方法来简化部署。
所以一切都很好,但偶尔网站会失败。我追踪到一个陈旧的缓存。要解决这个问题,我必须通过 SSH 连接到 Web 应用程序并使用
清除缓存$ php bin/console cache:clear
详细查看 Github 操作构建和部署日志,我看到 cache:clear 在构建 VM 上执行,这没有帮助。
我正在使用标准 php 构建和部署脚本,添加了 zip/unzip 步骤...
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions
name: Build and deploy PHP app to Azure Web App - xxx
on:
push:
branches:
- master
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
- name: Check if composer.json exists
id: check_files
uses: andstor/file-existence-action@v1
with:
files: 'composer.json'
- name: Run composer install if composer.json exists
if: steps.check_files.outputs.files_exists == 'true'
run: composer validate --no-check-publish && composer install --prefer-dist --no-progress
- name: Zip artifact for deployment
run: zip -r release.zip * .env .htaccess public/.htaccess
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v2
with:
name: php-app
path: release.zip
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'staging'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v2
with:
name: php-app
- name: Unzip artifact for deployment
run: unzip release.zip
- name: 'Deploy to Azure Web App'
uses: azure/webapps-deploy@v2
id: deploy-to-webapp
with:
app-name: 'xxxx'
slot-name: 'staging'
publish-profile: ${{ secrets.AZUREAPPSERVICE_xxxxx }}
package: .
部署到 Web 应用程序后如何使清除缓存命令生效?
根据上述问题陈述,我们了解到您希望清除 Web 应用缓存 post 部署。
为了实现这一点,您可以添加一个应用设置 WEBSITE_LOCAL_CACHE_OPTION=Always 来帮助您清除网络应用的本地缓存。
对于任何应用服务,其相关内容(代码文件、资源等)都托管在共享内容文件夹中,以便提供应用服务的所有功能,如负载平衡等。因此,如果有2 个 VM 配置为负载平衡,然后只有一个共享位置托管应用服务的所有内容。
当这些 Web 应用程序引用内容文件夹时,可能会出现延迟问题(尽管 Azure 会处理其中的大部分问题),这可能会稍微降低网站的性能。在这样的 Performance-critical 应用程序中,我们可以利用“Azure App Service Local Cache”的功能。
有关详细信息,请参阅 Azure App Service Local Cache & this 博客 post 上的此 Azure 文档。
对...
原来清除缓存的方法很简单。使用缓存清除命令作为“启动命令”
所以我部署并通过 SSH 连接到 Web 应用程序并检查 /home/site/wwwroot/var/cache/staging 瞧!所有文件都是新创建的!
一开始我也有过这种想法,但看起来确实很麻烦。我真的想要一种更简洁的方法来做到这一点。我尝试将启动命令添加到部署脚本但出现此错误...
所以我无法添加启动命令,因为有一个发布配置文件。
那么为什么这么简单的问题花了这么长时间才在 SO 上回答?不止一个完全不相关的建议答案。所有这些答案都与我的问题有共同点,比如“缓存”和“php”。