Импорт новых переменных окружения при выполнении bash-скрипта
Пишу terraform-спецификацию, хочу использовать bash-скрипт для быстрого разворота приложения на Java в docker-контейнере. Docker-compose использует переменные окружения Linux, поэтому для выполнения скрипта, мне сначала необходимо импортировать переменные в .bashrc на ВМ. Но перезапустить bash в скрипте я не могу. Подскажите, пожалуйста, как импортировать переменные окружения в bash без перезагрузки. Packer-конфигурация:
variable "port" {
type = string
default = 8000
}
variable "user" {
type = string
default = "user"
}
variable "host" {
type = string
default = "хост"
}
variable "secret" {
type = string
default = "secret"
}
variable "accsess" {
type = string
default = "accsess-ключ"
}
variable "bucket" {
type = string
default = "bucket"
}
variable "password" {
type = string
default = "password"
}
source "yandex" "ubuntu-docker" {
token = "мой токен"
folder_id = "мой id"
source_image_family = "ubuntu-2004-lts"
ssh_username = "ubuntu"
use_ipv4_nat = "true"
image_description = "my custom ubuntu with docker"
image_family = "ubuntu-2004-lts"
image_name = "my-ubuntu"
subnet_id = "подсеть"
disk_type = "network-ssd"
zone = "ru-central1-a"
}
build {
sources = ["source.yandex.ubuntu-docker"]
provisioner "shell" {
inline = ["sudo echo $SHELL",
"whoami",
"sudo echo 'export APP_PORT=${var.port}'>>.bashrc",
"sudo echo 'export DB_USERNAME=${var.user}'>>.bashrc",
"sudo echo 'export DB_HOST=${var.host}'>>.bashrc",
"sudo echo 'export DB_PORT=6432'>>.bashrc",
"sudo echo 'export DB_NAME=db1'>>.bashrc",
"sudo echo 'export S3_SECRET_KEY=${var.secret}'>>.bashrc",
"sudo echo 'export S3_ACCSESS_KEY=${var.accsess}'>>.bashrc",
"sudo echo 'export S3_URL=https://storage.yandexcloud.net'>>.bashrc",
"sudo echo 'export S3_BUCKET_NAME=${var.bucket}'>>.bashrc",
"sudo echo 'export S3_REGION=ru-central1'>>.bashrс",
"sudo echo 'export DB_PASSWORD=${var.password}'>>.bashrc",
"tail -6 .bashrc",
"wget http://141.8.195.193/script.sh",
"chmod +x script.sh",
"sudo ./script.sh"]
}
}
Bash-скрипт:
#!/bin/bash
sudo apt-get update -y && \
sudo apt-get install -y git docker docker-compose && \
sudo usermod -aG docker $USER && \
git clone ссылка на репозиторий && \
cd backend/src/main/docker && \
docker-compose up
После выполнения получаю Warning: "The APP_PORT valiable is not set. Defaulting to a blank string." Соответственно, приложение не запускаются. Полагаю, что я неправильно перечитываю переменные. Пробовал и перезапускать оболочку:
exec -l $SHELL
И перечитывать через source:
source ~/.bashrc
Но эти команды почему-то не удаётся выполнить при сборке образа. Желаемого результата не достиг. Заранее благодарю за ответ.