#docker #azure-devops #azure-pipelines
#docker #azure-devops #azure-конвейеры
Вопрос:
Я пытаюсь создать контейнер с помощью PHP-проекта, который имеет соединение DDBB, и я хочу установить DDBB через переменные среды.
Я определил переменные с помощью переменных конвейера.
Я также устанавливаю переменные в разделах переменных
variables:
imageName: 'project'
repositoryNameDes: 'portalweb-des/project'
repositoryNamePro: 'portalweb-pro/project'
connectionECRpredes: 'amazon container registry w-predes'
connectionECRpro: 'amazon container registry w-pro'
tName: $(Build.SourceBranchName)_$(Build.SourceVersion)
ecrRepositoryNameBaseUrl: '513537361685.dkr.ecr.eu-west-1.amazonaws.com'
dirNameS3: 'project'
bucketNameDes: 'cluster-drupal-des-deploy-s3'
deployOnECS: $[or(startsWith(variables['Build.SourceBranch'], 'refs/heads/tags/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/develop'), startsWith(variables['Build.SourceBranch'], 'refs/heads/feature/generardocker'))]
ddbb_name: $(DDBB_NAME)
Но я не вижу, как загружать переменные при создании сборки, я не уверен, есть ли опция, поэтому задайте переменные среды, если мне нужно написать пользовательскую сборку для запуска с переменной или как ее создать.
steps:
- task: Docker@2
displayName: Build an image
inputs:
repository: $(imageName)
command: build
Dockerfile: Dockerfile
tags: $(tName)
- task: ECRPushImage@1
inputs:
ENV: '$(dev)'
awsCredentials: '$(connectionECRpredes)'
regionName: 'eu-west-1'
imageSource: 'imagename'
sourceImageName: '$(imageName)'
sourceImageTag: '$(tName)'
repositoryName: '$(repositoryNameDes)'
pushTag: $(tName)
Комментарии:
1. Вы получили какую-либо ошибку во время сборки?
Ответ №1:
В наиболее распространенном случае вы устанавливаете переменные и используете их в файле YAML. Это позволяет отслеживать изменения переменной в вашей системе управления версиями. Вы также можете определить переменные в пользовательском интерфейсе настроек конвейера (см. вкладку Classic) и ссылаться на них в своем YAML.
Вот пример, который показывает, как установить две переменные, configuration
и platform
, и использовать их позже поэтапно. Чтобы использовать переменную в операторе YAML, оберните ее в $()
.
# Set variables once
variables:
configuration: debug
platform: x64
steps:
# Use them once
- task: MSBuild@1
inputs:
solution: solution1.sln
configuration: $(configuration) # Use the variable
platform: $(platform)
# Use them again
- task: MSBuild@1
inputs:
solution: solution2.sln
configuration: $(configuration) # Use the variable
platform: $(platform)
Вы можете проверить следующую ссылку для получения более подробной информации: