Initial commit
This commit is contained in:
commit
b1a377d034
23
.gitlab-ci.yml
Normal file
23
.gitlab-ci.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
stages:
|
||||||
|
- build
|
||||||
|
|
||||||
|
build-images:
|
||||||
|
stage: build
|
||||||
|
image: repo.nstart.local/nstart/docker-cli-buildx:1.0.0
|
||||||
|
services:
|
||||||
|
- name: repo.nstart.local/nstart/docker-dind-ca:1.0.0
|
||||||
|
alias: docker
|
||||||
|
command: ["--tls=false"]
|
||||||
|
variables:
|
||||||
|
DOCKER_HOST: tcp://docker:2375
|
||||||
|
DOCKER_TLS_CERTDIR: ""
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- BAKE_TARGET:
|
||||||
|
- images-node-debian
|
||||||
|
- images-python-debian
|
||||||
|
script:
|
||||||
|
- echo $REGISTRY_PASSWORD | docker login -u $REGISTRY_USER --password-stdin $REGISTRY
|
||||||
|
- docker bake "$BAKE_TARGET" --no-cache --push
|
||||||
|
only:
|
||||||
|
- main
|
||||||
11
Dockerfile.node-deb
Normal file
11
Dockerfile.node-deb
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
ARG BASE_REPO="repo.nstart.local/library/"
|
||||||
|
ARG BASE_TAG="25-trixie-slim"
|
||||||
|
|
||||||
|
FROM ${BASE_REPO}node:${BASE_TAG}
|
||||||
|
|
||||||
|
COPY --chmod=007 ca/nstart.local.crt /usr/local/share/ca-certificates/nstart.local.crt
|
||||||
|
|
||||||
|
COPY apt/99ca /etc/apt/apt.conf.d/99ca
|
||||||
|
COPY apt/debian.sources /etc/apt/sources.list.d/debian.sources
|
||||||
|
|
||||||
|
COPY node/npmrc /usr/local/etc/npmrc
|
||||||
11
Dockerfile.python-deb
Normal file
11
Dockerfile.python-deb
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
ARG BASE_REPO="repo.nstart.local/library/"
|
||||||
|
ARG BASE_TAG="3.14-slim-trixie"
|
||||||
|
|
||||||
|
FROM ${BASE_REPO}python:${BASE_TAG}
|
||||||
|
|
||||||
|
COPY --chmod=007 ca/nstart.local.crt /usr/local/share/ca-certificates/nstart.local.crt
|
||||||
|
|
||||||
|
COPY apt/99ca /etc/apt/apt.conf.d/99ca
|
||||||
|
COPY apt/debian.sources /etc/apt/sources.list.d/debian.sources
|
||||||
|
|
||||||
|
COPY python/pip.conf /etc/pip.conf
|
||||||
55
README.md
Normal file
55
README.md
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# Базовые OCI-образы
|
||||||
|
|
||||||
|
Набор базовых Docker-образов для внутренней инфраструктуры: с корпоративным CA
|
||||||
|
и настройками для локальных зеркал репозиториев
|
||||||
|
|
||||||
|
## Собираемые образы
|
||||||
|
|
||||||
|
- Node (Debian)
|
||||||
|
- Python (Debian)
|
||||||
|
|
||||||
|
## Сборка
|
||||||
|
|
||||||
|
Требования: Docker с BuildKit/buildx.
|
||||||
|
|
||||||
|
Список таргетов:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker bake --list=targets
|
||||||
|
```
|
||||||
|
|
||||||
|
Локальная сборка (загрузка в Docker Engine):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker bake all --load
|
||||||
|
```
|
||||||
|
|
||||||
|
Сборка и публикация в registry:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker bake all --push
|
||||||
|
```
|
||||||
|
|
||||||
|
Для публикации требуется авторизация в registry (`docker login`).
|
||||||
|
|
||||||
|
## Параметры
|
||||||
|
|
||||||
|
Переопределяемые переменные (`docker-bake.hcl`):
|
||||||
|
|
||||||
|
- `registry` (по умолчанию `repo.nstart.local`) - registry для публикации итоговых образов
|
||||||
|
- `base_repo` (по умолчанию `repo.nstart.local/library/`) - репозиторий базовых образов
|
||||||
|
|
||||||
|
Пример переопределения:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
registry=registry.example.local \
|
||||||
|
base_repo=registry.example.local/library/ \
|
||||||
|
docker bake all --push
|
||||||
|
```
|
||||||
|
|
||||||
|
Переопределение тега базового образа через Bake:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker buildx bake images-node-debian \
|
||||||
|
--set images-node-debian.args.BASE_TAG=<tag>
|
||||||
|
```
|
||||||
3
apt/99ca
Normal file
3
apt/99ca
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Acquire::https::repo.nstart.local::Verify-Peer "true";
|
||||||
|
Acquire::https::repo.nstart.local::Verify-Host "true";
|
||||||
|
Acquire::https::repo.nstart.local::CaInfo "/usr/local/share/ca-certificates/nstart.local.crt";
|
||||||
11
apt/debian.sources
Normal file
11
apt/debian.sources
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Types: deb
|
||||||
|
URIs: https://repo.nstart.local/repository/apt-proxy/debian
|
||||||
|
Suites: trixie trixie-updates
|
||||||
|
Components: main
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
|
|
||||||
|
Types: deb
|
||||||
|
URIs: https://repo.nstart.local/repository/apt-proxy/debian-security
|
||||||
|
Suites: trixie-security
|
||||||
|
Components: main
|
||||||
|
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||||
21
ca/nstart.local.crt
Normal file
21
ca/nstart.local.crt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDbTCCAlWgAwIBAgIUIjJbBQwjttGdplafh/xeEbpQsVEwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwRjEjMCEGA1UECgwa0JDQniDQndC+0LLRi9C5INCh0YLQsNGA0YIxHzAdBgNV
|
||||||
|
BAMMFnNydmt3dHMwMS5uc3RhcnQubG9jYWwwHhcNMjUwOTAyMTM0NDQzWhcNMzcx
|
||||||
|
MjE1MTM0NDQzWjBGMSMwIQYDVQQKDBrQkNCeINCd0L7QstGL0Lkg0KHRgtCw0YDR
|
||||||
|
gjEfMB0GA1UEAwwWc3J2a3d0czAxLm5zdGFydC5sb2NhbDCCASIwDQYJKoZIhvcN
|
||||||
|
AQEBBQADggEPADCCAQoCggEBAPHmRc1s3oYq9VJFZ0a6iCuXI4PtZt0fnrvmtL1x
|
||||||
|
qZ2B2SefdWHMiGu7uZeN+n5hbefYxwLNG5uvoZGOObYfaHAmwNdEea6xKT15Q9+y
|
||||||
|
yaV4i4zvTvyJhb/Q2Vldpc0h62DWSMRMTYFnfXuvaRFIYtUWe0xa92zNFi5/rCA3
|
||||||
|
F0LhxJtJBe/52UgNHFaJ8xw4do38ihoLsM93UJrt86SkDj4XtvRP5wJBTDYdMUhg
|
||||||
|
Uw1wgOjHNC5OSwnGLmvd2agI9DxfrFtts7C2m4TfpQRSEv1RBepuRRhsh2P/3edW
|
||||||
|
9paegFxZQxoSuGzl47b+bFjZ1Qa+AYDWRa2d00IwBp4FK2UCAwEAAaNTMFEwHQYD
|
||||||
|
VR0OBBYEFGxIHnoLch0XMz+Vq/OWbLSpxCVOMB8GA1UdIwQYMBaAFGxIHnoLch0X
|
||||||
|
Mz+Vq/OWbLSpxCVOMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
|
||||||
|
AGnFpgBBnXbXw2SgYeGSrKwe2Ash66MSzNFXZEuNoIjkS64ZymvysE7S9peezVCb
|
||||||
|
u26p3DSPGVFXuXCe+trt1OnTTkOMHOYMrrWwjBkPlU/hjEUDmjhr11d/a6HfRC5i
|
||||||
|
r/44xy1/i8F7yBVRYKTrHkC1pFs1hyabFB9C4PNBJ3eAnk3s5Ikh08lRQ5nD4Eoe
|
||||||
|
5/Gz62znb09b2+/SobHRm8gufOXzd8AT9OWuyt6KgHIJ5Gc5F3tydXGDpxeWRtux
|
||||||
|
0o7O1wGEbKAVcfKvx/2NgRUmEhASXjVsjiB56BBEHxRlZpV38BTjUBPryuRiz3Ze
|
||||||
|
hneIyDjekpH7U7LogVpAkUg=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
61
docker-bake.hcl
Normal file
61
docker-bake.hcl
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
variable "registry" {
|
||||||
|
default = "repo.nstart.local"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "base_repo" {
|
||||||
|
default = "repo.nstart.local/library/"
|
||||||
|
}
|
||||||
|
|
||||||
|
function "oci_labels" {
|
||||||
|
params = [name, version]
|
||||||
|
result = {
|
||||||
|
"org.opencontainers.image.version" = version,
|
||||||
|
"org.opencontainers.image.vendor" = "New Start",
|
||||||
|
"org.opencontainers.image.authors" = "Sychev Nikita <Sychev.NA@nstart.space>",
|
||||||
|
"org.opencontainers.image.base.name" = "${base_repo}${name}:${version}",
|
||||||
|
"org.opencontainers.image.title" = "Base image for ${name} with custom CA and local repos",
|
||||||
|
"org.opencontainers.image.description" = "Slim base image for ${name} with internal CA and local package mirrors",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function "image_ref" {
|
||||||
|
params = [name]
|
||||||
|
result = registry != "" ? "${registry}/nstart/${name}" : "nstart/${name}"
|
||||||
|
}
|
||||||
|
|
||||||
|
target "image" {
|
||||||
|
name = "images-${combo.image}-${combo.distro}"
|
||||||
|
|
||||||
|
matrix = {
|
||||||
|
combo = [
|
||||||
|
{ image = "node", distro= "debian", version = "25-trixie-slim", dockerfile="Dockerfile.node-deb" },
|
||||||
|
{ image = "python", distro= "debian", version = "3.14-slim-trixie", dockerfile="Dockerfile.python-deb" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
platforms = ["linux/amd64"]
|
||||||
|
output = ["type=image,registry.insecure=true"]
|
||||||
|
attest = [
|
||||||
|
"type=sbom",
|
||||||
|
"type=provenance,mode=max"
|
||||||
|
]
|
||||||
|
|
||||||
|
context = "."
|
||||||
|
dockerfile = combo.dockerfile
|
||||||
|
|
||||||
|
args = {
|
||||||
|
BASE_REPO = base_repo
|
||||||
|
BASE_TAG = combo.version
|
||||||
|
}
|
||||||
|
|
||||||
|
tags = [
|
||||||
|
"${image_ref(combo.image)}:${combo.version}",
|
||||||
|
"${image_ref(combo.image)}:latest",
|
||||||
|
]
|
||||||
|
|
||||||
|
labels = oci_labels(combo.image, combo.version)
|
||||||
|
}
|
||||||
|
|
||||||
|
group "all" {
|
||||||
|
targets = ["image"]
|
||||||
|
}
|
||||||
3
node/npmrc
Normal file
3
node/npmrc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
registry=https://repo.nstart.local/repository/npm-group/
|
||||||
|
strict-ssl=true
|
||||||
|
cafile=/usr/local/share/ca-certificates/nstart.local.crt
|
||||||
4
python/pip.conf
Normal file
4
python/pip.conf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[global]
|
||||||
|
index-url = https://repo.nstart.local/repository/pypi-group/simple
|
||||||
|
cert = /usr/local/share/ca-certificates/nstart.local.crt
|
||||||
|
disable-pip-version-check = true
|
||||||
Loading…
x
Reference in New Issue
Block a user