commit c0ee0f7f11ab378ad7dad075b71d4616e85501d7 Author: Templates <> Date: Wed Feb 7 18:32:15 2024 +0300 Initial commit diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..a36deaf --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +## 1.0 + +### 15.09.2023 + +CREATE: + +* Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b47458d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,57 @@ +ARG DOCKER_REGISTRY=harbor.avroid.tech/docker-hub-proxy/library + +# https://hub.docker.com/_/ubuntu +FROM ${DOCKER_REGISTRY}/ubuntu:22.04 +LABEL description="Base build image based on ubuntu 22.04" + +# Disable output interactive dialogs in console for service commands +ENV DEBIAN_FRONTEND=noninteractive + +# Nexus +ARG NEXUS_DOMAIN_NAME="nexus.avroid.tech" +ARG NEXUS_URL="https://${NEXUS_DOMAIN_NAME}" + +# swap basic os repos to nexus mirrors https://nexus.avroid.tech +RUN sed -ie "s/deb\ http\:\/\/archive.ubuntu.com\/ubuntu/deb\ [trusted=yes] https\:\/\/${NEXUS_DOMAIN_NAME}\/repository\/mirror-os-apt-ubuntu/g" /etc/apt/sources.list && \ + sed -ie "s/deb\ http\:\/\/security.ubuntu.com\/ubuntu/deb\ [trusted=yes] https\:\/\/${NEXUS_DOMAIN_NAME}\/repository\/mirror-os-apt-ubuntu/g" /etc/apt/sources.list && \ + echo "Acquire::https::${NEXUS_DOMAIN_NAME}::Verify-Peer \"false\";" > /etc/apt/apt.conf.d/99nexus_proxy_cert && \ + apt update && \ + apt install -y ca-certificates && \ + apt update && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +ENV TZ="Europe/Moscow" + +# Set timezone on Ubuntu +RUN apt update && \ + apt install -y --no-install-recommends tzdata && \ + ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && \ + dpkg-reconfigure -f noninteractive tzdata && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Upgrade OS in container +RUN apt update && \ + apt install -y --no-install-recommends apt-utils && \ + apt dist-upgrade -y && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + + +# Install common packages for C/C++ projects build +RUN apt update &&\ + apt install -y \ + build-essential \ + cmake \ + curl \ + cutils \ + git \ + make \ + pkg-config \ + python3 \ + python3-pip \ + wget && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + ln -sf /usr/bin/python3 /usr/bin/python diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ec72403 --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +.PHONY: all build push clean + +IMAGE_NAME = base-build-image +IMAGE_GROUP = devops +IMAGE_TAG = 1.0 +REVISION = +DOCKER_REGISTRY = harbor.avroid.tech + +all: + @echo 'DEFAULT:' + @echo ' make build' + @echo ' make push' + @echo ' make getTag' + @echo ' make clean' + +build: + DOCKER_BUILDKIT=1 docker build \ + -f Dockerfile \ + --platform linux/amd64 \ + -t $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG)$(REVISION) src/ + +push: +ifeq ($(CI), false) + docker login https://$(DOCKER_REGISTRY) +endif + docker push $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG)$(REVISION) + +getTag: + @echo $(IMAGE_TAG) + +clean: + docker rmi $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG)$(REVISION) diff --git a/README.md b/README.md new file mode 100644 index 0000000..7130323 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# base-build-image + +## Данный репозиторий содержит базовое окружение для сборки под Ubuntu 22 и используется как основа для остальных репозиториев + +Для сборки образа выполните + +```bash +make build +``` + +Для загрузки образа в harbor выполните + +```bash +make push +``` +Для вывода тега докер образа выполните + +```bash +make getTag +``` + +Для удаления образа из системы выполните + +```bash +make clean +``` + +За версию докер образа отвечает переменная IMAGE_TAG в [Makefile](./Makefile#L5)