通过Azure DevOps管道部署的Azure功能无法执行

时间:2020-08-27 00:09:40

标签: azure docker azure-devops azure-function-app

我创建了一个azure管道,以通过以下配置部署具有azure函数的自定义docker映像。尽管该配置在构建方面起作用,但是服务器上未运行任何功能,我注意到在日志中未检测到任何功能。

pool:
  name: Azure Pipelines
steps:
- task: Docker@1
  displayName: 'build: build the docker image'
  inputs:
    azureSubscriptionEndpoint: 'Azure subscription 1 (3fc75102-5159-4491-b61c-b3fcb845f648)'
    azureContainerRegistry: whaiiapp.azurecr.io
    imageName: 'azureapp.azurecr.io/puppeteer:$(Build.BuildId)'
    useDefaultContext: false

- task: Docker@1
  displayName: 'push the image'
  inputs:
    azureSubscriptionEndpoint: 'Azure subscription 1 (3fc75102-5159-4491-b61c-b3fcb845f648)'
    azureContainerRegistry: azureapp.azurecr.io
    command: 'Push an image'
    imageName: 'azureap.azurecr.io/puppeteer:$(Build.BuildId)'

- task: FuncToolsInstaller@0
  displayName: 'Install func tools - latest'

- task: AzureFunctionAppContainer@1
  displayName: 'Start Azure Function App on Container Deploy: generate-report-dev'
  inputs:
    azureSubscription: 'Azure subscription 1 (3fc75102-5159-4491-b61c-b3fcb845f648)'
    appName: 'generate-report-dev'
    imageName: azureapp.azurecr.io/puppeteer
    containerCommand: 'npm start'

以下是我的Dockerfile配置

FROM mcr.microsoft.com/azure-functions/node:3.0-appservice

# Chromium dependencies
RUN apt-get update -yq \
&& apt-get install -yq git git-extras gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 \
libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst libgbm-dev \
ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget && \
wget https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64.deb && \
dpkg -i dumb-init_*.deb && rm -f dumb-init_*.deb && \
apt-get clean && apt-get autoremove -y && rm -rf /var/lib/apt/lists/*

WORKDIR /home/site/wwwroot

RUN npm install --no-save puppeteer

ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
    FUNCTIONS_WORKER_RUNTIME=node \

COPY . /home/site/wwwroot

RUN cd /home/site/wwwroot && npm install

CMD [ "npm start" ]

我不确定如何进行调试。我尝试通过ssh登录服务器并运行func start对其进行测试,结果显示func命令不可用。

1 个答案:

答案 0 :(得分:0)

我相信您的azure函数无法从注册表中提取图像,我确实遇到了同样的问题,因此我只是创建了一个新的函数应用,然后在部署过程中选择了存储库,因此它将在后面创建一个Webhook场景,每次更新时都会从注册表中提取最新图像。