[dev] node updated

This commit is contained in:
STAM 2025-07-29 18:10:28 +03:00
parent 8477a5dea8
commit 0e82035640
No known key found for this signature in database
GPG Key ID: 711526C6938897F1
64 changed files with 992 additions and 40 deletions

View File

@ -118,6 +118,7 @@ jobs:
- {version: '21', path: 'nodejs/node21'}
- {version: '22', path: 'nodejs/node22'}
- {version: '23', path: 'nodejs/node23'}
- {version: '24', path: 'nodejs/node24'}
steps:
- uses: actions/checkout@v4
with:

View File

@ -119,6 +119,7 @@ jobs:
- {version: '21', path: 'nodejs/node21'}
- {version: '22', path: 'nodejs/node22'}
- {version: '23', path: 'nodejs/node23'}
- {version: '24', path: 'nodejs/node24'}
steps:
- uses: actions/checkout@v4
with:

View File

@ -121,6 +121,7 @@ jobs:
- {version: '21', path: 'nodejs/node21'}
- {version: '22', path: 'nodejs/node22'}
- {version: '23', path: 'nodejs/node23'}
- {version: '24', path: 'nodejs/node24'}
steps:
- uses: actions/checkout@v4

View File

@ -121,6 +121,7 @@ jobs:
- {version: '21', path: 'nodejs/node21'}
- {version: '22', path: 'nodejs/node22'}
- {version: '23', path: 'nodejs/node23'}
- {version: '24', path: 'nodejs/node24'}
steps:
- uses: actions/checkout@v4

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=22
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=22
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -0,0 +1,45 @@
FROM epicmorg/debian:bullseye
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=24
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.4.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
##################################################################
# Node.js 24.x
##################################################################
RUN groupadd -g 1337 node && \
useradd -u 1337 --gid node --shell /bin/bash --create-home node
ADD ${K_NODE_URL} /tmp
ADD ${K_NODE_HEADERS_URL} /tmp
RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
RUN npm install -g pnpm yarn
##################################################################
# Version after install
##################################################################
RUN echo "=============================================" && \
echo node $(node --version) && \
echo npm $(npm --version) && \
echo yarn $(yarn --version) && \
echo pnpm $(pnpm --version) && \
echo "============================================="
##################################################################
# Cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*

View File

@ -0,0 +1,45 @@
FROM epicmorg/debian:bullseye-develop
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=24
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.4.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
##################################################################
# Node.js 24.x
##################################################################
RUN groupadd -g 1337 node && \
useradd -u 1337 --gid node --shell /bin/bash --create-home node
ADD ${K_NODE_URL} /tmp
ADD ${K_NODE_HEADERS_URL} /tmp
RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
RUN npm install -g pnpm yarn
##################################################################
# Version after install
##################################################################
RUN echo "=============================================" && \
echo node $(node --version) && \
echo npm $(npm --version) && \
echo yarn $(yarn --version) && \
echo pnpm $(pnpm --version) && \
echo "============================================="
##################################################################
# Cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,93 @@
## TeamCity Minimal Build Agent
[<img src="http://jb.gg/badges/official.svg" height="20"/>](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
<img src="https://raw.githubusercontent.com/JetBrains/teamcity-docker-images/master/logo/GitHub.png" height="20" align="center"/> More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/).
## How to Use This Image
Pull the TeamCity minimal image from the Docker Hub Repository:
```
jetbrains/teamcity-minimal-agent
```
&nbsp;
and use the following command to start a container with TeamCity agent running inside
a Linux container:
```
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
jetbrains/teamcity-minimal-agent
```
&nbsp;
or a Windows container:
```
docker run -it -e SERVER_URL="<url to TeamCity server>"
-v <path to agent config folder>:C:/BuildAgent/conf
jetbrains/teamcity-minimal-agent
```
where `<url to TeamCity server>` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
`<path to agent config folder>` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
### Agent Image Environment Variables
- **SERVER_URL** - URL of the TeamCity server agent will connect to
- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
### Windows Containers Limitations
The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
## Customization
You can customize the image via the usual Docker procedure:
1. Run the image
```
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
--name="my-customized-agent" \
jetbrains/teamcity-minimal-agent \
```
2. Enter the container
```
docker exec -it my-customized-agent bash
```
3. Change whatever you need
4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
```
docker commit my-customized-agent <the registry where you what to store the image>
```
## License
The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
## Feedback
Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
## Other TeamCity Images
* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)

View File

@ -0,0 +1,10 @@
services:
app:
image: "epicmorg/debian:bullseye-nodejs24"
build:
context: .
app-develop:
image: "epicmorg/debian:bullseye-develop-nodejs24"
build:
context: .
dockerfile: ./Dockerfile.develop

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=22
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=22
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=22
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=22
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -0,0 +1,45 @@
FROM epicmorg/debian:bookworm
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=24
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.4.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
##################################################################
# Node.js 24.x
##################################################################
RUN groupadd -g 1337 node && \
useradd -u 1337 --gid node --shell /bin/bash --create-home node
ADD ${K_NODE_URL} /tmp
ADD ${K_NODE_HEADERS_URL} /tmp
RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
RUN npm install -g pnpm yarn
##################################################################
# Version after install
##################################################################
RUN echo "=============================================" && \
echo node $(node --version) && \
echo npm $(npm --version) && \
echo yarn $(yarn --version) && \
echo pnpm $(pnpm --version) && \
echo "============================================="
##################################################################
# Cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*

View File

@ -0,0 +1,45 @@
FROM epicmorg/debian:bookworm-develop
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=24
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.4.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
##################################################################
# Node.js 24.x
##################################################################
RUN groupadd -g 1337 node && \
useradd -u 1337 --gid node --shell /bin/bash --create-home node
ADD ${K_NODE_URL} /tmp
ADD ${K_NODE_HEADERS_URL} /tmp
RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
RUN npm install -g pnpm yarn
##################################################################
# Version after install
##################################################################
RUN echo "=============================================" && \
echo node $(node --version) && \
echo npm $(npm --version) && \
echo yarn $(yarn --version) && \
echo pnpm $(pnpm --version) && \
echo "============================================="
##################################################################
# Cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,93 @@
## TeamCity Minimal Build Agent
[<img src="http://jb.gg/badges/official.svg" height="20"/>](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
<img src="https://raw.githubusercontent.com/JetBrains/teamcity-docker-images/master/logo/GitHub.png" height="20" align="center"/> More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/).
## How to Use This Image
Pull the TeamCity minimal image from the Docker Hub Repository:
```
jetbrains/teamcity-minimal-agent
```
&nbsp;
and use the following command to start a container with TeamCity agent running inside
a Linux container:
```
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
jetbrains/teamcity-minimal-agent
```
&nbsp;
or a Windows container:
```
docker run -it -e SERVER_URL="<url to TeamCity server>"
-v <path to agent config folder>:C:/BuildAgent/conf
jetbrains/teamcity-minimal-agent
```
where `<url to TeamCity server>` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
`<path to agent config folder>` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
### Agent Image Environment Variables
- **SERVER_URL** - URL of the TeamCity server agent will connect to
- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
### Windows Containers Limitations
The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
## Customization
You can customize the image via the usual Docker procedure:
1. Run the image
```
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
--name="my-customized-agent" \
jetbrains/teamcity-minimal-agent \
```
2. Enter the container
```
docker exec -it my-customized-agent bash
```
3. Change whatever you need
4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
```
docker commit my-customized-agent <the registry where you what to store the image>
```
## License
The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
## Feedback
Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
## Other TeamCity Images
* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)

View File

@ -0,0 +1,10 @@
services:
app:
image: "epicmorg/debian:bookworm-nodejs24"
build:
context: .
app-develop:
image: "epicmorg/debian:bookworm-develop-nodejs24"
build:
context: .
dockerfile: ./Dockerfile.develop

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -0,0 +1,45 @@
FROM epicmorg/debian:trixie
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=24
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.4.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
##################################################################
# Node.js 24.x
##################################################################
RUN groupadd -g 1337 node && \
useradd -u 1337 --gid node --shell /bin/bash --create-home node
ADD ${K_NODE_URL} /tmp
ADD ${K_NODE_HEADERS_URL} /tmp
RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
RUN npm install -g pnpm yarn
##################################################################
# Version after install
##################################################################
RUN echo "=============================================" && \
echo node $(node --version) && \
echo npm $(npm --version) && \
echo yarn $(yarn --version) && \
echo pnpm $(pnpm --version) && \
echo "============================================="
##################################################################
# Cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*

View File

@ -0,0 +1,45 @@
FROM epicmorg/debian:trixie-develop
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=24
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.4.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
##################################################################
# Node.js 24.x
##################################################################
RUN groupadd -g 1337 node && \
useradd -u 1337 --gid node --shell /bin/bash --create-home node
ADD ${K_NODE_URL} /tmp
ADD ${K_NODE_HEADERS_URL} /tmp
RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
RUN npm install -g pnpm yarn
##################################################################
# Version after install
##################################################################
RUN echo "=============================================" && \
echo node $(node --version) && \
echo npm $(npm --version) && \
echo yarn $(yarn --version) && \
echo pnpm $(pnpm --version) && \
echo "============================================="
##################################################################
# Cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,93 @@
## TeamCity Minimal Build Agent
[<img src="http://jb.gg/badges/official.svg" height="20"/>](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
<img src="https://raw.githubusercontent.com/JetBrains/teamcity-docker-images/master/logo/GitHub.png" height="20" align="center"/> More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/).
## How to Use This Image
Pull the TeamCity minimal image from the Docker Hub Repository:
```
jetbrains/teamcity-minimal-agent
```
&nbsp;
and use the following command to start a container with TeamCity agent running inside
a Linux container:
```
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
jetbrains/teamcity-minimal-agent
```
&nbsp;
or a Windows container:
```
docker run -it -e SERVER_URL="<url to TeamCity server>"
-v <path to agent config folder>:C:/BuildAgent/conf
jetbrains/teamcity-minimal-agent
```
where `<url to TeamCity server>` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
`<path to agent config folder>` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
### Agent Image Environment Variables
- **SERVER_URL** - URL of the TeamCity server agent will connect to
- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
### Windows Containers Limitations
The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
## Customization
You can customize the image via the usual Docker procedure:
1. Run the image
```
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
--name="my-customized-agent" \
jetbrains/teamcity-minimal-agent \
```
2. Enter the container
```
docker exec -it my-customized-agent bash
```
3. Change whatever you need
4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
```
docker commit my-customized-agent <the registry where you what to store the image>
```
## License
The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
## Feedback
Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
## Other TeamCity Images
* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)

View File

@ -0,0 +1,10 @@
services:
app:
image: "epicmorg/debian:trixie-nodejs24"
build:
context: .
app-develop:
image: "epicmorg/debian:trixie-develop-nodejs24"
build:
context: .
dockerfile: ./Dockerfile.develop

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=20
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.19.4
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -4,7 +4,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -0,0 +1,45 @@
FROM epicmorg/debian:sid
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=24
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.4.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
##################################################################
# Node.js 24.x
##################################################################
RUN groupadd -g 1337 node && \
useradd -u 1337 --gid node --shell /bin/bash --create-home node
ADD ${K_NODE_URL} /tmp
ADD ${K_NODE_HEADERS_URL} /tmp
RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
RUN npm install -g pnpm yarn
##################################################################
# Version after install
##################################################################
RUN echo "=============================================" && \
echo node $(node --version) && \
echo npm $(npm --version) && \
echo yarn $(yarn --version) && \
echo pnpm $(pnpm --version) && \
echo "============================================="
##################################################################
# Cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*

View File

@ -0,0 +1,45 @@
FROM epicmorg/debian:sid-develop
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=24
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.4.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
##################################################################
# Node.js 24.x
##################################################################
RUN groupadd -g 1337 node && \
useradd -u 1337 --gid node --shell /bin/bash --create-home node
ADD ${K_NODE_URL} /tmp
ADD ${K_NODE_HEADERS_URL} /tmp
RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
RUN npm install -g pnpm yarn
##################################################################
# Version after install
##################################################################
RUN echo "=============================================" && \
echo node $(node --version) && \
echo npm $(npm --version) && \
echo yarn $(yarn --version) && \
echo pnpm $(pnpm --version) && \
echo "============================================="
##################################################################
# Cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*

View File

@ -0,0 +1,44 @@
all: app
app:
make pip
make build
make deploy
make clean
build:
make build-buildah
deploy:
make deploy-buildah
build-buildah:
buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a
pip:
pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper

View File

@ -0,0 +1,93 @@
## TeamCity Minimal Build Agent
[<img src="http://jb.gg/badges/official.svg" height="20"/>](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
<img src="https://raw.githubusercontent.com/JetBrains/teamcity-docker-images/master/logo/GitHub.png" height="20" align="center"/> More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/teamcity-agent](https://hub.docker.com/r/jetbrains/teamcity-agent/).
## How to Use This Image
Pull the TeamCity minimal image from the Docker Hub Repository:
```
jetbrains/teamcity-minimal-agent
```
&nbsp;
and use the following command to start a container with TeamCity agent running inside
a Linux container:
```
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
jetbrains/teamcity-minimal-agent
```
&nbsp;
or a Windows container:
```
docker run -it -e SERVER_URL="<url to TeamCity server>"
-v <path to agent config folder>:C:/BuildAgent/conf
jetbrains/teamcity-minimal-agent
```
where `<url to TeamCity server>` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
`<path to agent config folder>` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
### Agent Image Environment Variables
- **SERVER_URL** - URL of the TeamCity server agent will connect to
- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
### Windows Containers Limitations
The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
## Customization
You can customize the image via the usual Docker procedure:
1. Run the image
```
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
--name="my-customized-agent" \
jetbrains/teamcity-minimal-agent \
```
2. Enter the container
```
docker exec -it my-customized-agent bash
```
3. Change whatever you need
4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
```
docker commit my-customized-agent <the registry where you what to store the image>
```
## License
The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
## Feedback
Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
## Other TeamCity Images
* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)

View File

@ -0,0 +1,10 @@
services:
app:
image: "epicmorg/debian:sid-nodejs24"
build:
context: .
app-develop:
image: "epicmorg/debian:sid-develop-nodejs24"
build:
context: .
dockerfile: ./Dockerfile.develop

View File

@ -3,7 +3,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -3,7 +3,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -3,7 +3,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=22
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz

View File

@ -3,7 +3,7 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
ARG K_NODE_MAJOR_VERSION=23
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.1
ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz