init
This commit is contained in:
53
.devcontainer/Dockerfile
Executable file
53
.devcontainer/Dockerfile
Executable file
@@ -0,0 +1,53 @@
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG TERRAFORM_VERSION=1.8.5
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates curl unzip git \
|
||||
make openssh-client \
|
||||
python3 python3-pip python3-venv \
|
||||
locales gnupg \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Генерируем UTF-8 локаль
|
||||
RUN sed -i 's/^# *\(en_US.UTF-8 UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& locale-gen
|
||||
|
||||
ENV LANG=en_US.UTF-8 \
|
||||
LANGUAGE=en_US:en \
|
||||
LC_ALL=en_US.UTF-8
|
||||
|
||||
# --- Packer (через HashiCorp APT repo) ---
|
||||
RUN set -eux; \
|
||||
curl -fsSL https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg; \
|
||||
codename="$(. /etc/os-release && echo "$VERSION_CODENAME")"; \
|
||||
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com ${codename} main" > /etc/apt/sources.list.d/hashicorp.list; \
|
||||
apt-get update; \
|
||||
apt-get install -y --no-install-recommends packer; \
|
||||
rm -rf /var/lib/apt/lists/*; \
|
||||
packer version
|
||||
|
||||
# --- Ansible (в venv) ---
|
||||
RUN python3 -m venv /opt/ansible \
|
||||
&& /opt/ansible/bin/pip install --no-cache-dir --upgrade pip \
|
||||
&& /opt/ansible/bin/pip install --no-cache-dir ansible \
|
||||
&& ln -sf /opt/ansible/bin/ansible /usr/local/bin/ansible \
|
||||
&& ln -sf /opt/ansible/bin/ansible-playbook /usr/local/bin/ansible-playbook \
|
||||
&& ln -sf /opt/ansible/bin/ansible-galaxy /usr/local/bin/ansible-galaxy \
|
||||
&& ansible --version
|
||||
|
||||
# --- Terraform ---
|
||||
RUN set -eux; \
|
||||
arch="$(dpkg --print-architecture)"; \
|
||||
case "$arch" in \
|
||||
amd64) tf_arch="amd64" ;; \
|
||||
arm64) tf_arch="arm64" ;; \
|
||||
*) echo "Unsupported arch: $arch"; exit 1 ;; \
|
||||
esac; \
|
||||
curl -fsSL "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_${tf_arch}.zip" -o /tmp/terraform.zip; \
|
||||
unzip /tmp/terraform.zip -d /usr/local/bin; \
|
||||
rm -f /tmp/terraform.zip; \
|
||||
terraform version
|
||||
|
||||
WORKDIR /work
|
||||
Reference in New Issue
Block a user