[DO-107] 14-node20 (!1)
DO-107 Reviewed-on: https://git.avroid.tech/Docker/clang-format/pulls/1 Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech> Co-committed-by: denis.patrakeev <denis.patrakeev@avroid.tech>
This commit is contained in:
committed by
Denis Patrakeev
parent
49838445bd
commit
760ba1a44c
6
.gitignore
vendored
6
.gitignore
vendored
@@ -12,3 +12,9 @@
|
|||||||
# Built Visual Studio Code Extensions
|
# Built Visual Studio Code Extensions
|
||||||
*.vsix
|
*.vsix
|
||||||
|
|
||||||
|
*~
|
||||||
|
**/.DS_Store
|
||||||
|
|
||||||
|
# pyCharm
|
||||||
|
.idea
|
||||||
|
|
||||||
|
|||||||
13
CHANGELOG.md
Normal file
13
CHANGELOG.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [14-node20] - 2023-11-01
|
||||||
|
|
||||||
|
### Added
|
||||||
|
* image with clang-format 11 based on Ubuntu 22.04
|
||||||
|
* install NodeJS 20 for work Gitea Actions
|
||||||
|
* add bash util parallel
|
||||||
77
Dockerfile
Normal file
77
Dockerfile
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
ARG DOCKER_REGISTRY=harbor.avroid.tech/docker-hub-proxy/library
|
||||||
|
ARG UBUNTU_VERSION=22.04
|
||||||
|
|
||||||
|
# https://hub.docker.com/_/ubuntu
|
||||||
|
FROM ${DOCKER_REGISTRY}/ubuntu:${UBUNTU_VERSION}
|
||||||
|
|
||||||
|
LABEL maintainer="devops <devops@avroid.tech>" \
|
||||||
|
description="Image with LLVM clang-format, for check sources" \
|
||||||
|
tools.nodejs.version="20.9.0"
|
||||||
|
|
||||||
|
ARG CLANG_TOOLS_VERSION=14
|
||||||
|
ARG NODEJS_VERSION=20.9.0
|
||||||
|
|
||||||
|
ARG UID=2000
|
||||||
|
ARG GID=2000
|
||||||
|
ARG USER=jenkins
|
||||||
|
ARG USER_GROUP=jenkins
|
||||||
|
ARG USER_HOME=/home/${USER}
|
||||||
|
|
||||||
|
# Nexus
|
||||||
|
ARG NEXUS_DOMAIN_NAME='nexus.avroid.tech'
|
||||||
|
ARG NEXUS_URL="https://${NEXUS_DOMAIN_NAME}"
|
||||||
|
|
||||||
|
ENV TZ Europe/Moscow
|
||||||
|
|
||||||
|
# Подавляем вывод в консоль интерактивных диалогов у служебных команд
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
|
RUN sed -ie "s/deb\ http\:\/\/archive.ubuntu.com\/ubuntu/deb\ [trusted=yes] https\:\/\/${NEXUS_DOMAIN_NAME}\/repository\/all-apt-proxy-archive-ubuntu-com/g" /etc/apt/sources.list \
|
||||||
|
&& sed -ie "s/deb\ http\:\/\/security.ubuntu.com\/ubuntu/deb\ [trusted=yes] https\:\/\/${NEXUS_DOMAIN_NAME}\/repository\/all-apt-proxy-security-ubuntu-com/g" /etc/apt/sources.list \
|
||||||
|
&& echo "Acquire::https::${NEXUS_DOMAIN_NAME}::Verify-Peer \"false\";" > /etc/apt/apt.conf.d/99nexus_proxy_cert \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y \
|
||||||
|
tzdata \
|
||||||
|
apt-utils \
|
||||||
|
ca-certificates \
|
||||||
|
software-properties-common \
|
||||||
|
wget \
|
||||||
|
gnupg \
|
||||||
|
&& ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime \
|
||||||
|
&& dpkg-reconfigure -f noninteractive tzdata \
|
||||||
|
&& apt-get dist-upgrade -y \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
|
||||||
|
&& groupadd -g ${GID} ${USER_GROUP} \
|
||||||
|
&& useradd -m -d ${USER_HOME} -g ${GID} -u ${UID} --shell /bin/bash ${USER}
|
||||||
|
|
||||||
|
# Install NodeJS from base repo and fix version NodeJS for work Gitea Actions
|
||||||
|
RUN apt update \
|
||||||
|
&& apt install -y \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
&& npm i -g n \
|
||||||
|
&& npm i -g corepack \
|
||||||
|
&& n install ${NODEJS_VERSION} \
|
||||||
|
&& apt clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
# clan-format from official repository with mirror on Nexus
|
||||||
|
RUN wget -O - "${NEXUS_URL}/repository/all-raw-proxy-apt-llvm-org/llvm-snapshot.gpg.key" | apt-key add - \
|
||||||
|
&& add-apt-repository \
|
||||||
|
"deb ${NEXUS_URL}/repository/all-apt-proxy-apt-llvm-org/jammy/ llvm-toolchain-jammy-${CLANG_TOOLS_VERSION} main" \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y \
|
||||||
|
clang-format-${CLANG_TOOLS_VERSION} \
|
||||||
|
clang-tidy-${CLANG_TOOLS_VERSION} \
|
||||||
|
parallel \
|
||||||
|
&& ln -s /usr/bin/clang-format-${CLANG_TOOLS_VERSION} /usr/bin/clang-format \
|
||||||
|
&& ln -s /usr/bin/clang-tidy-${CLANG_TOOLS_VERSION} /usr/bin/clang-tidy \
|
||||||
|
&& apt clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
USER ${USER}
|
||||||
|
|
||||||
|
WORKDIR ${USER_HOME}
|
||||||
|
|
||||||
|
CMD ["/bin/bash"]
|
||||||
35
Makefile
Normal file
35
Makefile
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
.PHONY: all build push getTag clean
|
||||||
|
|
||||||
|
IMAGE_NAME = clang-format
|
||||||
|
IMAGE_GROUP = devops
|
||||||
|
APP_VERSION = 14
|
||||||
|
REVISION = -node20
|
||||||
|
IMAGE_TAG = $(APP_VERSION)$(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 \
|
||||||
|
--no-cache \
|
||||||
|
--pull \
|
||||||
|
--platform linux/amd64 \
|
||||||
|
-t $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG) \
|
||||||
|
--build-arg CLANG_TOOLS_VERSION=$(APP_VERSION) .
|
||||||
|
|
||||||
|
push:
|
||||||
|
ifeq ($(CI), false)
|
||||||
|
docker login https://$(DOCKER_REGISTRY)
|
||||||
|
endif
|
||||||
|
docker push $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG)
|
||||||
|
|
||||||
|
getTag:
|
||||||
|
@echo $(IMAGE_TAG)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
docker rmi $(DOCKER_REGISTRY)/$(IMAGE_GROUP)/$(IMAGE_NAME):$(IMAGE_TAG)
|
||||||
30
README.md
30
README.md
@@ -1,3 +1,29 @@
|
|||||||
# clang-format
|
# Clang-format
|
||||||
|
|
||||||
Image with clang-format for check sources
|
## Данный репозиторий содержит clang-format для автоматического форматирование кода на C/С++
|
||||||
|
|
||||||
|
Для сборки образа выполните
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make build
|
||||||
|
```
|
||||||
|
|
||||||
|
Для загрузки образа в harbor выполните
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make push
|
||||||
|
```
|
||||||
|
|
||||||
|
Для просмотра версии тега докер образа выполните
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make getTag
|
||||||
|
```
|
||||||
|
|
||||||
|
Для удаления образа из системы выполните
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make clean
|
||||||
|
```
|
||||||
|
|
||||||
|
За версию clang-format отвечает директива APP_VERSION в [Makefile](./Makefile#L5)
|
||||||
|
|||||||
Reference in New Issue
Block a user