/
daowolf
/
docker-images
Обзор
Документация
Войти
/
daowolf
/
docker-images
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
deploy/Dockerfile
97 строк
3 KB
daowolf
first_commit
23 дек 2025, 16:43
23 дек 2025, 16:43
dba7fda
Код
Авторство
О чём код?
FROM debian:bookworm-slim # Настроить зеркало Яндекс для Debian (замена основной и security реплик) RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ca-certificates \ curl \ gcc \ git \ gnupg2 \ jq \ libffi-dev \ libssl-dev \ make \ openssh-client \ python3 \ python3-venv \ python3-pip \ rsync \ sshpass \ unzip \ vim \ wget \ yq \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Создать и активировать виртуальное окружение для Python ENV VENV_PATH=/opt/venv RUN python3 -m venv $VENV_PATH ENV PATH="$VENV_PATH/bin:$PATH" # Установить Ansible Core и Ansible Runner RUN pip install --no-cache-dir ansible-core ansible-runner requests # Установить Galaxy коллекции RUN ansible-galaxy collection install \ community.general \ ansible.posix \ community.crypto \ cloud.terraform \ community.docker \ community.network \ community.proxmox \ community.zabbix \ cloud.terraform # Установить Terraform из зеркала Яндекса ARG TERRAFORM_VERSION=1.13.1 RUN wget -q "https://hashicorp-releases.yandexcloud.net/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" -O terraform.zip \ && unzip -o terraform.zip \ && mv terraform /usr/local/bin/ \ && rm terraform.zip \ && terraform -version # Настроить зеркало провайдеров Terraform RUN cat <<EOF > /etc/terraformrc provider_installation { network_mirror { url = "https://terraform-mirror.yandexcloud.net/" include = ["registry.terraform.io/*/*"] } direct { exclude = ["registry.terraform.io/*/*"] } } EOF RUN chmod 644 /etc/terraformrc && chown root:root /etc/terraformrc # Предварительная инициализация Terraform-модулей (Proxmox, Docker, Yandex) RUN TMPDIR=$(mktemp -d) \ && cat <<EOF > "${TMPDIR}/main.tf" terraform { required_providers { proxmox = { source = "Telmate/proxmox" } docker = { source = "hashicorp/docker" } yandex = { source = "yandex-cloud/yandex" } } } EOF RUN cd "$TMPDIR" \ && terraform init -backend=false -upgrade \ && rm -rf "$TMPDIR" # Копировать пользовательский ansible.cfg COPY ansible.cfg /etc/ansible/ansible.cfg # Настройка параметров ssh RUN echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config \ && echo "UserKnownHostsFile=/dev/null" >> /etc/ssh/ssh_config ENV TF_CLI_CONFIG_FILE=/etc/terraformrc # Рабочий каталог и точка входа WORKDIR /work