mirror of
https://github.com/EpicMorg/docker-scripts.git
synced 2024-12-25 22:25:40 +03:00
teamcity-agent
This commit is contained in:
parent
bea9ce4c4a
commit
18c53a30ec
@ -2,6 +2,7 @@
|
|||||||
### 2021
|
### 2021
|
||||||
* `september`
|
* `september`
|
||||||
* added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support.
|
* added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support.
|
||||||
|
* fully reworked `teamcity-agent` images.
|
||||||
* `august`
|
* `august`
|
||||||
* splited `tc-agents` with `nodejs`
|
* splited `tc-agents` with `nodejs`
|
||||||
* fixed `PostgreSQL` images
|
* fixed `PostgreSQL` images
|
||||||
|
@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PH
|
|||||||
##################################################################
|
##################################################################
|
||||||
# Installing imagic addon
|
# Installing imagic addon
|
||||||
##################################################################
|
##################################################################
|
||||||
RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
|
RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
|
||||||
php -m && \
|
php -m && \
|
||||||
php -v
|
php -v
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PH
|
|||||||
##################################################################
|
##################################################################
|
||||||
# Installing imagic addon
|
# Installing imagic addon
|
||||||
##################################################################
|
##################################################################
|
||||||
RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
|
RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
|
||||||
php -m && \
|
php -m && \
|
||||||
php -v
|
php -v
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${P
|
|||||||
##################################################################
|
##################################################################
|
||||||
# Installing imagic addon
|
# Installing imagic addon
|
||||||
##################################################################
|
##################################################################
|
||||||
RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
|
RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
|
||||||
php -m && \
|
php -m && \
|
||||||
php -v
|
php -v
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PH
|
|||||||
##################################################################
|
##################################################################
|
||||||
# Installing imagic addon
|
# Installing imagic addon
|
||||||
##################################################################
|
##################################################################
|
||||||
RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
|
RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
|
||||||
php -m && \
|
php -m && \
|
||||||
php -v
|
php -v
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ RUN mkdir -p ${BITBUCKET_INSTALL_DIR} \
|
|||||||
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
&& curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "${BITBUCKET_INSTALL_DIR}" \
|
||||||
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
&& chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}/ \
|
||||||
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
&& sed -i -e 's/^# umask/umask/' ${BITBUCKET_INSTALL_DIR}/bin/_start-webapp.sh && \
|
||||||
|
|
||||||
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \
|
||||||
apt clean -y && \
|
apt clean -y && \
|
||||||
apt autoclean -y && \
|
apt autoclean -y && \
|
||||||
|
44
linux/teamcity/agent/amxx-sdk/Dockerfile
Normal file
44
linux/teamcity/agent/amxx-sdk/Dockerfile
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
FROM epicmorg/teamcity-agent:latest
|
||||||
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# teamcity AMXXModX setup
|
||||||
|
##################################################################
|
||||||
|
#
|
||||||
|
# Reserved for future
|
||||||
|
# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-cstrike-linux` && \
|
||||||
|
# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-dod-linux` && \
|
||||||
|
# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-esf-linux` && \
|
||||||
|
# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-ns-linux` && \
|
||||||
|
# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-tfc-linux` && \
|
||||||
|
# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \
|
||||||
|
#
|
||||||
|
# Install packages
|
||||||
|
ENV AMXX_VERSION=1.9
|
||||||
|
ENV AMXX_INSTALL_PATH=/opt/amxmodx/$AMXX_VERSION
|
||||||
|
ENV AMXX_BIN_PATH=$AMXX_INSTALL_PATH/scripting
|
||||||
|
ENV PATH=$PATH:$AMXX_BIN_PATH
|
||||||
|
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AMXX_BIN_PATH
|
||||||
|
|
||||||
|
RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \
|
||||||
|
mkdir -p $AMXX_INSTALL_PATH && \
|
||||||
|
curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \
|
||||||
|
mv -f /tmp/addons/amxmodx/* $AMXX_INSTALL_PATH && \
|
||||||
|
chmod +x $AMXX_BIN_PATH/amxxpc && \
|
||||||
|
chmod +x $AMXX_BIN_PATH/compile.sh
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# cleaninig up
|
||||||
|
##################################################################
|
||||||
|
RUN apt clean -y && \
|
||||||
|
apt-get clean all && \
|
||||||
|
apt autoclean -y && \
|
||||||
|
rm -rfv /var/lib/apt/lists/* && \
|
||||||
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
||||||
|
rm -rfv /tmp/deb/* && \
|
||||||
|
rm -rfv /tmp/composer-setup.php && \
|
||||||
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
rm -rfv /tmp/addons
|
5
linux/teamcity/agent/amxx-sdk/Makefile
Normal file
5
linux/teamcity/agent/amxx-sdk/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
docker-compose build --compress
|
||||||
|
docker-compose push
|
93
linux/teamcity/agent/amxx-sdk/README.md
Normal file
93
linux/teamcity/agent/amxx-sdk/README.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
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/)
|
6
linux/teamcity/agent/amxx-sdk/docker-compose.yml
Normal file
6
linux/teamcity/agent/amxx-sdk/docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/teamcity-agent:amxx-sdk"
|
||||||
|
build:
|
||||||
|
context: .
|
49
linux/teamcity/agent/android-sdk/Dockerfile
Normal file
49
linux/teamcity/agent/android-sdk/Dockerfile
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
FROM epicmorg/teamcity-agent:latest
|
||||||
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# Android SDK
|
||||||
|
##################################################################
|
||||||
|
ENV ANDROID_HOME=/usr/lib/android-sdk
|
||||||
|
ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk
|
||||||
|
|
||||||
|
RUN apt update && \
|
||||||
|
apt install -y --allow-unauthenticated \
|
||||||
|
android-sdk \
|
||||||
|
android-sdk-build-tools \
|
||||||
|
android-sdk-platform-tools-common \
|
||||||
|
android-sdk-platform-tools \
|
||||||
|
adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3
|
||||||
|
|
||||||
|
# Activate android sdk
|
||||||
|
RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# SDKMAN
|
||||||
|
##################################################################
|
||||||
|
RUN curl -s "https://get.sdkman.io" | bash
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# Gradle
|
||||||
|
##################################################################
|
||||||
|
RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh; sdk install gradle;"
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# Kotlin
|
||||||
|
##################################################################
|
||||||
|
RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh; sdk install kotlin;"
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# cleaninig up
|
||||||
|
##################################################################
|
||||||
|
RUN apt clean -y && \
|
||||||
|
apt-get clean all && \
|
||||||
|
apt autoclean -y && \
|
||||||
|
rm -rfv /var/lib/apt/lists/* && \
|
||||||
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
||||||
|
rm -rfv /tmp/deb/* && \
|
||||||
|
rm -rfv /tmp/composer-setup.php && \
|
||||||
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
rm -rfv /tmp/addons
|
5
linux/teamcity/agent/android-sdk/Makefile
Normal file
5
linux/teamcity/agent/android-sdk/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
docker-compose build --compress
|
||||||
|
docker-compose push
|
93
linux/teamcity/agent/android-sdk/README.md
Normal file
93
linux/teamcity/agent/android-sdk/README.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
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/)
|
6
linux/teamcity/agent/android-sdk/docker-compose.yml
Normal file
6
linux/teamcity/agent/android-sdk/docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/teamcity-agent:android-sdk"
|
||||||
|
build:
|
||||||
|
context: .
|
36
linux/teamcity/agent/atlassian-sdk/Dockerfile
Normal file
36
linux/teamcity/agent/atlassian-sdk/Dockerfile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
FROM epicmorg/teamcity-agent:latest
|
||||||
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# teamcity atlassian-sdk setup
|
||||||
|
##################################################################
|
||||||
|
|
||||||
|
#Install packages
|
||||||
|
#RUN curl -SL https://packages.atlassian.com/atlassian-sdk-deb/debian/pool/contrib/a/atlassian-plugin-sdk/atlassian-plugin-sdk_8.0.16_all.deb -o /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
# dpkg -i /tmp/atlassian-plugin-sdk.deb
|
||||||
|
|
||||||
|
###############################
|
||||||
|
# https://community.atlassian.com/t5/Continuous-Delivery-questions/The-repository-https-packages-atlassian-com-atlassian-sdk-deb/qaq-p/1334014
|
||||||
|
#
|
||||||
|
# https://community.developer.atlassian.com/t/the-repository-https-packages-atlassian-com-atlassian-sdk-deb-stable-release-is-not-signed/36901
|
||||||
|
###############################
|
||||||
|
RUN curl -fsSL https://packages.atlassian.com/api/gpg/key/public | apt-key add - && \
|
||||||
|
echo 'deb [trusted=yes] https://packages.atlassian.com/atlassian-sdk-deb stable contrib' > /etc/apt/sources.list.d/atlassian-sdk.list && \
|
||||||
|
apt update --allow-insecure-repositories && \
|
||||||
|
apt install -y --no-install-recommends --allow-unauthenticated \
|
||||||
|
atlassian-plugin-sdk
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# cleaninig up
|
||||||
|
##################################################################
|
||||||
|
RUN apt clean -y && \
|
||||||
|
apt-get clean all && \
|
||||||
|
apt autoclean -y && \
|
||||||
|
rm -rfv /var/lib/apt/lists/* && \
|
||||||
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
||||||
|
rm -rfv /tmp/deb/* && \
|
||||||
|
rm -rfv /tmp/composer-setup.php && \
|
||||||
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
rm -rfv /tmp/addons
|
5
linux/teamcity/agent/atlassian-sdk/Makefile
Normal file
5
linux/teamcity/agent/atlassian-sdk/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
docker-compose build --compress
|
||||||
|
docker-compose push
|
93
linux/teamcity/agent/atlassian-sdk/README.md
Normal file
93
linux/teamcity/agent/atlassian-sdk/README.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
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/)
|
6
linux/teamcity/agent/atlassian-sdk/docker-compose.yml
Normal file
6
linux/teamcity/agent/atlassian-sdk/docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/teamcity-agent:atlassian-sdk"
|
||||||
|
build:
|
||||||
|
context: .
|
72
linux/teamcity/agent/dotnet-sdk/Dockerfile
Normal file
72
linux/teamcity/agent/dotnet-sdk/Dockerfile
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
FROM epicmorg/teamcity-agent:latest
|
||||||
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# teamcity dotnet+powershell setup
|
||||||
|
##################################################################
|
||||||
|
# Opt out of the telemetry feature
|
||||||
|
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
|
||||||
|
|
||||||
|
# Disable first time experience
|
||||||
|
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
|
||||||
|
|
||||||
|
# Configure Kestrel web server to bind to port 80 when present
|
||||||
|
ENV ASPNETCORE_URLS=\
|
||||||
|
|
||||||
|
# Enable detection of running in a container
|
||||||
|
ENV DOTNET_RUNNING_IN_CONTAINER=true
|
||||||
|
|
||||||
|
# Enable correct mode for dotnet watch (only mode supported in a container)
|
||||||
|
ENV DOTNET_USE_POLLING_FILE_WATCHER=true
|
||||||
|
|
||||||
|
# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance
|
||||||
|
ENV NUGET_XMLDOC_MODE=skip
|
||||||
|
|
||||||
|
#unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359]
|
||||||
|
ENV CLR_OPENSSL_VERSION_OVERRIDE=45
|
||||||
|
|
||||||
|
# PowerShell telemetry for docker image usage
|
||||||
|
ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Debian-10
|
||||||
|
|
||||||
|
#Install packages
|
||||||
|
RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \
|
||||||
|
echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/10/prod buster main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends --allow-unauthenticated \
|
||||||
|
libc6 \
|
||||||
|
# libgcc1 \
|
||||||
|
libgssapi-krb5-2 \
|
||||||
|
libicu63 \
|
||||||
|
liblttng-ust0 \
|
||||||
|
libssl1.1 \
|
||||||
|
libstdc++6 \
|
||||||
|
zlib1g \
|
||||||
|
dotnet-sdk-5.0 \
|
||||||
|
dotnet-targeting-pack-5.0 \
|
||||||
|
dotnet-runtime-deps-5.0 \
|
||||||
|
dotnet-runtime-5.0 \
|
||||||
|
dotnet-hostfxr-5.0 \
|
||||||
|
dotnet-apphost-pack-5.0 \
|
||||||
|
dotnet-host \
|
||||||
|
powershell-preview \
|
||||||
|
powershell
|
||||||
|
|
||||||
|
# Trigger .NET CLI first run experience by running arbitrary cmd to populate local package cache
|
||||||
|
RUN dotnet help && \
|
||||||
|
pwsh-preview -v && \
|
||||||
|
pwsh -v
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# cleaninig up
|
||||||
|
##################################################################
|
||||||
|
RUN apt clean -y && \
|
||||||
|
apt-get clean all && \
|
||||||
|
apt autoclean -y && \
|
||||||
|
rm -rfv /var/lib/apt/lists/* && \
|
||||||
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
||||||
|
rm -rfv /tmp/deb/* && \
|
||||||
|
rm -rfv /tmp/composer-setup.php && \
|
||||||
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
rm -rfv /tmp/addons
|
5
linux/teamcity/agent/dotnet-sdk/Makefile
Normal file
5
linux/teamcity/agent/dotnet-sdk/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
docker-compose build --compress
|
||||||
|
docker-compose push
|
93
linux/teamcity/agent/dotnet-sdk/README.md
Normal file
93
linux/teamcity/agent/dotnet-sdk/README.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
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/)
|
6
linux/teamcity/agent/dotnet-sdk/docker-compose.yml
Normal file
6
linux/teamcity/agent/dotnet-sdk/docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/teamcity-agent:dotnet-sdk"
|
||||||
|
build:
|
||||||
|
context: .
|
@ -1,18 +1,3 @@
|
|||||||
FROM epicmorg/php:latest AS php74
|
|
||||||
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# ARGuments
|
|
||||||
##################################################################
|
|
||||||
ENV BuildDocker true
|
|
||||||
|
|
||||||
ARG P4MODULE_PATH=/usr/lib/php/20190902
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
##################################################################
|
|
||||||
##################################################################
|
|
||||||
|
|
||||||
FROM epicmorg/devel:jdk11
|
FROM epicmorg/devel:jdk11
|
||||||
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
@ -56,63 +41,6 @@ RUN useradd -m buildagent && \
|
|||||||
chmod +x /opt/buildagent/bin/*.sh && \
|
chmod +x /opt/buildagent/bin/*.sh && \
|
||||||
chmod +x /run-agent.sh /run-services.sh && sync
|
chmod +x /run-agent.sh /run-services.sh && sync
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# teamcity dotnet+powershell setup
|
|
||||||
##################################################################
|
|
||||||
# Opt out of the telemetry feature
|
|
||||||
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
|
|
||||||
|
|
||||||
# Disable first time experience
|
|
||||||
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
|
|
||||||
|
|
||||||
# Configure Kestrel web server to bind to port 80 when present
|
|
||||||
ENV ASPNETCORE_URLS=\
|
|
||||||
|
|
||||||
# Enable detection of running in a container
|
|
||||||
ENV DOTNET_RUNNING_IN_CONTAINER=true
|
|
||||||
|
|
||||||
# Enable correct mode for dotnet watch (only mode supported in a container)
|
|
||||||
ENV DOTNET_USE_POLLING_FILE_WATCHER=true
|
|
||||||
|
|
||||||
# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance
|
|
||||||
ENV NUGET_XMLDOC_MODE=skip
|
|
||||||
|
|
||||||
#unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359]
|
|
||||||
ENV CLR_OPENSSL_VERSION_OVERRIDE=45
|
|
||||||
|
|
||||||
# PowerShell telemetry for docker image usage
|
|
||||||
ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Debian-10
|
|
||||||
|
|
||||||
#Install packages
|
|
||||||
RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \
|
|
||||||
echo 'deb [arch=amd64,arm64,armhf] https://packages.microsoft.com/debian/10/prod buster main' > /etc/apt/sources.list.d/microsoft.dotnet.list && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get install -y --no-install-recommends --allow-unauthenticated \
|
|
||||||
libc6 \
|
|
||||||
# libgcc1 \
|
|
||||||
libgssapi-krb5-2 \
|
|
||||||
libicu63 \
|
|
||||||
liblttng-ust0 \
|
|
||||||
libssl1.1 \
|
|
||||||
libstdc++6 \
|
|
||||||
zlib1g \
|
|
||||||
dotnet-sdk-5.0 \
|
|
||||||
dotnet-targeting-pack-5.0 \
|
|
||||||
dotnet-runtime-deps-5.0 \
|
|
||||||
dotnet-runtime-5.0 \
|
|
||||||
dotnet-hostfxr-5.0 \
|
|
||||||
dotnet-apphost-pack-5.0 \
|
|
||||||
dotnet-host \
|
|
||||||
powershell-preview \
|
|
||||||
powershell
|
|
||||||
|
|
||||||
# Trigger .NET CLI first run experience by running arbitrary cmd to populate local package cache
|
|
||||||
RUN ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0 && \
|
|
||||||
ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.0 && \
|
|
||||||
dotnet help && \
|
|
||||||
pwsh-preview -v && \
|
|
||||||
pwsh -v
|
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# teamcity docker setup
|
# teamcity docker setup
|
||||||
##################################################################
|
##################################################################
|
||||||
@ -146,235 +74,6 @@ RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/d
|
|||||||
curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \
|
curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \
|
||||||
chmod +x /usr/local/bin/docker-compose
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# teamcity AMXXModX setup
|
|
||||||
##################################################################
|
|
||||||
#
|
|
||||||
# Reserved for future
|
|
||||||
# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-cstrike-linux` && \
|
|
||||||
# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-dod-linux` && \
|
|
||||||
# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-esf-linux` && \
|
|
||||||
# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-ns-linux` && \
|
|
||||||
# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-tfc-linux` && \
|
|
||||||
# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \
|
|
||||||
#
|
|
||||||
# Install packages
|
|
||||||
ENV AMXX_VERSION=1.9
|
|
||||||
ENV AMXX_INSTALL_PATH=/opt/amxmodx/$AMXX_VERSION
|
|
||||||
ENV AMXX_BIN_PATH=$AMXX_INSTALL_PATH/scripting
|
|
||||||
ENV PATH=$PATH:$AMXX_BIN_PATH
|
|
||||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AMXX_BIN_PATH
|
|
||||||
|
|
||||||
RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \
|
|
||||||
mkdir -p $AMXX_INSTALL_PATH && \
|
|
||||||
curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \
|
|
||||||
cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \
|
|
||||||
mv -f /tmp/addons/amxmodx/* $AMXX_INSTALL_PATH && \
|
|
||||||
chmod +x $AMXX_BIN_PATH/amxxpc && \
|
|
||||||
chmod +x $AMXX_BIN_PATH/compile.sh
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# teamcity atlassian-sdk setup
|
|
||||||
##################################################################
|
|
||||||
|
|
||||||
#Install packages
|
|
||||||
#RUN curl -SL https://packages.atlassian.com/atlassian-sdk-deb/debian/pool/contrib/a/atlassian-plugin-sdk/atlassian-plugin-sdk_8.0.16_all.deb -o /tmp/atlassian-plugin-sdk.deb && \
|
|
||||||
# dpkg -i /tmp/atlassian-plugin-sdk.deb
|
|
||||||
|
|
||||||
###############################
|
|
||||||
# https://community.atlassian.com/t5/Continuous-Delivery-questions/The-repository-https-packages-atlassian-com-atlassian-sdk-deb/qaq-p/1334014
|
|
||||||
#
|
|
||||||
# https://community.developer.atlassian.com/t/the-repository-https-packages-atlassian-com-atlassian-sdk-deb-stable-release-is-not-signed/36901
|
|
||||||
###############################
|
|
||||||
RUN curl -fsSL https://packages.atlassian.com/api/gpg/key/public | apt-key add - && \
|
|
||||||
echo 'deb [trusted=yes] https://packages.atlassian.com/atlassian-sdk-deb stable contrib' > /etc/apt/sources.list.d/atlassian-sdk.list && \
|
|
||||||
apt-get update --allow-insecure-repositories && \
|
|
||||||
apt-get install -y --no-install-recommends --allow-unauthenticated \
|
|
||||||
atlassian-plugin-sdk
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# Installing PHP7.4
|
|
||||||
##################################################################
|
|
||||||
ENV PHP_MODULE_PATH=/usr/lib/php/20190902
|
|
||||||
ENV PHP_VER=7.4
|
|
||||||
ENV PHP_DIR=/etc/php/${PHP_VER}
|
|
||||||
ENV P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini
|
|
||||||
|
|
||||||
#installing php repo
|
|
||||||
RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
|
|
||||||
RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list'
|
|
||||||
|
|
||||||
#installing apache2 repo
|
|
||||||
RUN wget -O /etc/apt/trusted.gpg.d/apache2.gpg https://packages.sury.org/apache2/apt.gpg
|
|
||||||
RUN sh -c 'echo "deb https://packages.sury.org/apache2/ buster main" > /etc/apt/sources.list.d/apache2.list'
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# Installing PHP7
|
|
||||||
##################################################################
|
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y --allow-unauthenticated \
|
|
||||||
libmemcached-dev \
|
|
||||||
php7.4 \
|
|
||||||
php7.4-dev \
|
|
||||||
php7.4-fpm \
|
|
||||||
php7.4-cli \
|
|
||||||
php7.4-cgi \
|
|
||||||
php-pear \
|
|
||||||
php7.4-gmp \
|
|
||||||
php7.4-snmp \
|
|
||||||
php7.4-ldap \
|
|
||||||
php7.4-mail \
|
|
||||||
php7.4-soap \
|
|
||||||
php7.4-mysql \
|
|
||||||
php7.4-memcached \
|
|
||||||
php7.4-memcache \
|
|
||||||
php7.4-igbinary \
|
|
||||||
php7.4-interbase \
|
|
||||||
php7.4-curl \
|
|
||||||
php7.4-gd \
|
|
||||||
php7.4-intl \
|
|
||||||
php7.4-zip \
|
|
||||||
php7.4-bcmath \
|
|
||||||
php7.4-imap \
|
|
||||||
php7.4-pspell \
|
|
||||||
php7.4-sqlite3 \
|
|
||||||
php7.4-tidy \
|
|
||||||
php7.4-xmlrpc \
|
|
||||||
php7.4-xml \
|
|
||||||
php7.4-mbstring \
|
|
||||||
php7.4-apcu \
|
|
||||||
php7.4-common \
|
|
||||||
php7.4-json \
|
|
||||||
php7.4-readline \
|
|
||||||
php7.4-enchant \
|
|
||||||
php7.4-ssh2 \
|
|
||||||
php7.4-oauth \
|
|
||||||
php7.4-gmagick \
|
|
||||||
php7.4-gnupg \
|
|
||||||
php7.4-redis \
|
|
||||||
smbclient libsmbclient \
|
|
||||||
php7.4-yaml \
|
|
||||||
php7.4-geoip \
|
|
||||||
sendmail && \
|
|
||||||
ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \
|
|
||||||
update-alternatives --set php /usr/bin/php7.4 && \
|
|
||||||
php -m && \
|
|
||||||
php -v
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# Enabling extensions
|
|
||||||
##################################################################
|
|
||||||
RUN phpenmod \
|
|
||||||
snmp \
|
|
||||||
gmp \
|
|
||||||
calendar \
|
|
||||||
ldap \
|
|
||||||
curl \
|
|
||||||
exif \
|
|
||||||
ftp \
|
|
||||||
fileinfo \
|
|
||||||
gd \
|
|
||||||
geoip \
|
|
||||||
gnupg \
|
|
||||||
iconv \
|
|
||||||
imap \
|
|
||||||
json \
|
|
||||||
mbstring \
|
|
||||||
memcached \
|
|
||||||
mysqli \
|
|
||||||
mysqlnd \
|
|
||||||
oauth \
|
|
||||||
pdo_mysql \
|
|
||||||
pdo_sqlite \
|
|
||||||
phar \
|
|
||||||
posix \
|
|
||||||
readline \
|
|
||||||
redis \
|
|
||||||
simplexml \
|
|
||||||
sockets \
|
|
||||||
sqlite3 \
|
|
||||||
ssh2 \
|
|
||||||
tokenizer \
|
|
||||||
xml \
|
|
||||||
xmlreader \
|
|
||||||
xmlrpc \
|
|
||||||
xmlwriter \
|
|
||||||
xsl \
|
|
||||||
yaml && \
|
|
||||||
php -m && \
|
|
||||||
php -v
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# Installing IOnCube addon
|
|
||||||
##################################################################
|
|
||||||
ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz
|
|
||||||
RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \
|
|
||||||
cp /tmp/ioncube/ioncube_loader_lin_7.4.so ${PHP_MODULE_PATH} && \
|
|
||||||
echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cgi/php.ini && \
|
|
||||||
echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/cli/php.ini && \
|
|
||||||
echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PHP_DIR}/fpm/php.ini && \
|
|
||||||
php -m && \
|
|
||||||
php -v
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# Installing P4 addon
|
|
||||||
##################################################################
|
|
||||||
COPY --from=php74 ${PHP_MODULE_PATH}/perforce.so ${PHP_MODULE_PATH}
|
|
||||||
RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \
|
|
||||||
ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \
|
|
||||||
ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \
|
|
||||||
ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \
|
|
||||||
php -m && \
|
|
||||||
php -v
|
|
||||||
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# Installing Composer addon
|
|
||||||
##################################################################
|
|
||||||
RUN cd /tmp && \
|
|
||||||
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
|
|
||||||
php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
|
|
||||||
rm /tmp/composer-setup.php && \
|
|
||||||
composer global require elendev/nexus-composer-push && \
|
|
||||||
composer
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# Node.js 16.x
|
|
||||||
##################################################################
|
|
||||||
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \
|
|
||||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \
|
|
||||||
echo "deb https://nightly.yarnpkg.com/debian/ nightly main" > /etc/apt/sources.list.d/yarn.list && \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get install -y nodejs yarn && \
|
|
||||||
npm install -g npm@7.19.1
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# steam runtime and ssdk
|
|
||||||
##################################################################
|
|
||||||
RUN cd / && \
|
|
||||||
sudo mkdir valve && \
|
|
||||||
cd valve && \
|
|
||||||
sudo wget http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz && \
|
|
||||||
sudo tar xvf steam-runtime-sdk_latest.tar.xz && \
|
|
||||||
sudo mv steam-runtime-sdk_2013-09-05 steam-runtime && \
|
|
||||||
sudo chown root:root * -R && \
|
|
||||||
cd steam-runtime && \
|
|
||||||
printf '%s\n' 3 1 Y Y Y | ./setup.sh
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# Android SDK
|
|
||||||
##################################################################
|
|
||||||
RUN apt-get install -y -t sid --allow-unauthenticated \
|
|
||||||
android-sdk \
|
|
||||||
android-sdk-build-tools \
|
|
||||||
android-sdk-platform-tools libsqlite3-0 sqlite3 && \
|
|
||||||
echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license
|
|
||||||
|
|
||||||
ENV ANDROID_HOME=/usr/lib/android-sdk
|
|
||||||
ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk
|
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# cleaninig up
|
# cleaninig up
|
||||||
##################################################################
|
##################################################################
|
||||||
|
@ -1,46 +1,7 @@
|
|||||||
FROM epicmorg/devel:jdk11
|
FROM epicmorg/teamcity-agent:latest
|
||||||
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# sid sources list
|
|
||||||
##################################################################
|
|
||||||
#RUN rm -rfv /etc/apt/sources.list
|
|
||||||
COPY sources.sid.list /etc/apt/sources.list.d/
|
|
||||||
RUN apt update && \
|
|
||||||
apt autoremove -y && \
|
|
||||||
apt dist-upgrade -y && \
|
|
||||||
apt autoremove -y
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# teamcity minimal agent
|
|
||||||
##################################################################
|
|
||||||
LABEL dockerImage.teamcity.version="latest" \
|
|
||||||
dockerImage.teamcity.buildNumber="latest"
|
|
||||||
|
|
||||||
VOLUME /data/teamcity_agent/conf
|
|
||||||
|
|
||||||
ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties
|
|
||||||
ENV LANG=C.UTF-8
|
|
||||||
ENV GIT_SSH_VARIANT=ssh
|
|
||||||
|
|
||||||
COPY run-agent.sh /run-agent.sh
|
|
||||||
RUN chmod +x /run-agent.sh && \
|
|
||||||
sync
|
|
||||||
|
|
||||||
COPY run-services.sh /run-services.sh
|
|
||||||
RUN chmod +x /run-services.sh && \
|
|
||||||
sync
|
|
||||||
|
|
||||||
ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip
|
|
||||||
RUN unzip -q /buildAgent.zip -d /opt/buildagent && \
|
|
||||||
mv /opt/buildagent/conf /opt/buildagent/conf_dist && \
|
|
||||||
rm -rfv /buildAgent.zip
|
|
||||||
|
|
||||||
RUN useradd -m buildagent && \
|
|
||||||
chmod +x /opt/buildagent/bin/*.sh && \
|
|
||||||
chmod +x /run-agent.sh /run-services.sh && sync
|
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# Node.js 12.x
|
# Node.js 12.x
|
||||||
##################################################################
|
##################################################################
|
||||||
@ -72,7 +33,3 @@ RUN apt clean -y && \
|
|||||||
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
rm -rfv /tmp/addons
|
rm -rfv /tmp/addons
|
||||||
|
|
||||||
CMD ["/run-services.sh"]
|
|
||||||
|
|
||||||
EXPOSE 9090
|
|
||||||
|
@ -1,46 +1,7 @@
|
|||||||
FROM epicmorg/devel:jdk11
|
FROM epicmorg/teamcity-agent:latest
|
||||||
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# sid sources list
|
|
||||||
##################################################################
|
|
||||||
#RUN rm -rfv /etc/apt/sources.list
|
|
||||||
COPY sources.sid.list /etc/apt/sources.list.d/
|
|
||||||
RUN apt update && \
|
|
||||||
apt autoremove -y && \
|
|
||||||
apt dist-upgrade -y && \
|
|
||||||
apt autoremove -y
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# teamcity minimal agent
|
|
||||||
##################################################################
|
|
||||||
LABEL dockerImage.teamcity.version="latest" \
|
|
||||||
dockerImage.teamcity.buildNumber="latest"
|
|
||||||
|
|
||||||
VOLUME /data/teamcity_agent/conf
|
|
||||||
|
|
||||||
ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties
|
|
||||||
ENV LANG=C.UTF-8
|
|
||||||
ENV GIT_SSH_VARIANT=ssh
|
|
||||||
|
|
||||||
COPY run-agent.sh /run-agent.sh
|
|
||||||
RUN chmod +x /run-agent.sh && \
|
|
||||||
sync
|
|
||||||
|
|
||||||
COPY run-services.sh /run-services.sh
|
|
||||||
RUN chmod +x /run-services.sh && \
|
|
||||||
sync
|
|
||||||
|
|
||||||
ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip
|
|
||||||
RUN unzip -q /buildAgent.zip -d /opt/buildagent && \
|
|
||||||
mv /opt/buildagent/conf /opt/buildagent/conf_dist && \
|
|
||||||
rm -rfv /buildAgent.zip
|
|
||||||
|
|
||||||
RUN useradd -m buildagent && \
|
|
||||||
chmod +x /opt/buildagent/bin/*.sh && \
|
|
||||||
chmod +x /run-agent.sh /run-services.sh && sync
|
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# Node.js 14.x
|
# Node.js 14.x
|
||||||
##################################################################
|
##################################################################
|
||||||
@ -72,7 +33,3 @@ RUN apt clean -y && \
|
|||||||
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
rm -rfv /tmp/addons
|
rm -rfv /tmp/addons
|
||||||
|
|
||||||
CMD ["/run-services.sh"]
|
|
||||||
|
|
||||||
EXPOSE 9090
|
|
||||||
|
@ -1,46 +1,7 @@
|
|||||||
FROM epicmorg/devel:jdk11
|
FROM epicmorg/teamcity-agent:latest
|
||||||
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# sid sources list
|
|
||||||
##################################################################
|
|
||||||
#RUN rm -rfv /etc/apt/sources.list
|
|
||||||
COPY sources.sid.list /etc/apt/sources.list.d/
|
|
||||||
RUN apt update && \
|
|
||||||
apt autoremove -y && \
|
|
||||||
apt dist-upgrade -y && \
|
|
||||||
apt autoremove -y
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# teamcity minimal agent
|
|
||||||
##################################################################
|
|
||||||
LABEL dockerImage.teamcity.version="latest" \
|
|
||||||
dockerImage.teamcity.buildNumber="latest"
|
|
||||||
|
|
||||||
VOLUME /data/teamcity_agent/conf
|
|
||||||
|
|
||||||
ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties
|
|
||||||
ENV LANG=C.UTF-8
|
|
||||||
ENV GIT_SSH_VARIANT=ssh
|
|
||||||
|
|
||||||
COPY run-agent.sh /run-agent.sh
|
|
||||||
RUN chmod +x /run-agent.sh && \
|
|
||||||
sync
|
|
||||||
|
|
||||||
COPY run-services.sh /run-services.sh
|
|
||||||
RUN chmod +x /run-services.sh && \
|
|
||||||
sync
|
|
||||||
|
|
||||||
ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip
|
|
||||||
RUN unzip -q /buildAgent.zip -d /opt/buildagent && \
|
|
||||||
mv /opt/buildagent/conf /opt/buildagent/conf_dist && \
|
|
||||||
rm -rfv /buildAgent.zip
|
|
||||||
|
|
||||||
RUN useradd -m buildagent && \
|
|
||||||
chmod +x /opt/buildagent/bin/*.sh && \
|
|
||||||
chmod +x /run-agent.sh /run-services.sh && sync
|
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# Node.js 15.x
|
# Node.js 15.x
|
||||||
##################################################################
|
##################################################################
|
||||||
@ -72,7 +33,3 @@ RUN apt clean -y && \
|
|||||||
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
rm -rfv /tmp/addons
|
rm -rfv /tmp/addons
|
||||||
|
|
||||||
CMD ["/run-services.sh"]
|
|
||||||
|
|
||||||
EXPOSE 9090
|
|
||||||
|
@ -1,46 +1,7 @@
|
|||||||
FROM epicmorg/devel:jdk11
|
FROM epicmorg/teamcity-agent:latest
|
||||||
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# sid sources list
|
|
||||||
##################################################################
|
|
||||||
#RUN rm -rfv /etc/apt/sources.list
|
|
||||||
COPY sources.sid.list /etc/apt/sources.list.d/
|
|
||||||
RUN apt update && \
|
|
||||||
apt autoremove -y && \
|
|
||||||
apt dist-upgrade -y && \
|
|
||||||
apt autoremove -y
|
|
||||||
|
|
||||||
##################################################################
|
|
||||||
# teamcity minimal agent
|
|
||||||
##################################################################
|
|
||||||
LABEL dockerImage.teamcity.version="latest" \
|
|
||||||
dockerImage.teamcity.buildNumber="latest"
|
|
||||||
|
|
||||||
VOLUME /data/teamcity_agent/conf
|
|
||||||
|
|
||||||
ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties
|
|
||||||
ENV LANG=C.UTF-8
|
|
||||||
ENV GIT_SSH_VARIANT=ssh
|
|
||||||
|
|
||||||
COPY run-agent.sh /run-agent.sh
|
|
||||||
RUN chmod +x /run-agent.sh && \
|
|
||||||
sync
|
|
||||||
|
|
||||||
COPY run-services.sh /run-services.sh
|
|
||||||
RUN chmod +x /run-services.sh && \
|
|
||||||
sync
|
|
||||||
|
|
||||||
ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip
|
|
||||||
RUN unzip -q /buildAgent.zip -d /opt/buildagent && \
|
|
||||||
mv /opt/buildagent/conf /opt/buildagent/conf_dist && \
|
|
||||||
rm -rfv /buildAgent.zip
|
|
||||||
|
|
||||||
RUN useradd -m buildagent && \
|
|
||||||
chmod +x /opt/buildagent/bin/*.sh && \
|
|
||||||
chmod +x /run-agent.sh /run-services.sh && sync
|
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# Node.js 16.x
|
# Node.js 16.x
|
||||||
##################################################################
|
##################################################################
|
||||||
@ -72,7 +33,3 @@ RUN apt clean -y && \
|
|||||||
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
rm -rfv /tmp/addons
|
rm -rfv /tmp/addons
|
||||||
|
|
||||||
CMD ["/run-services.sh"]
|
|
||||||
|
|
||||||
EXPOSE 9090
|
|
||||||
|
@ -1,90 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
check() {
|
|
||||||
if [[ $? != 0 ]]; then
|
|
||||||
echo "Error! Stopping the script."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
configure() {
|
|
||||||
if [[ $# -gt 0 ]]; then
|
|
||||||
echo "run agent.sh configure $@"
|
|
||||||
${AGENT_DIST}/bin/agent.sh configure "$@"; check
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
reconfigure() {
|
|
||||||
declare -a opts
|
|
||||||
[[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL"
|
|
||||||
[[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN"
|
|
||||||
[[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME"
|
|
||||||
[[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS"
|
|
||||||
[[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT"
|
|
||||||
if [[ 0 -ne "${#opts[@]}" ]]; then
|
|
||||||
# Using sed to strip double quotes produced by docker-compose
|
|
||||||
for i in $(seq 0 $(expr ${#opts[@]} - 1)); do
|
|
||||||
opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')"
|
|
||||||
done
|
|
||||||
configure "${opts[@]}"
|
|
||||||
echo "File buildAgent.properties was updated"
|
|
||||||
fi
|
|
||||||
for AGENT_OPT in ${AGENT_OPTS}; do
|
|
||||||
echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
prepare_conf() {
|
|
||||||
echo "Will prepare agent config" ;
|
|
||||||
cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check
|
|
||||||
cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check
|
|
||||||
reconfigure
|
|
||||||
echo "File buildAgent.properties was created and updated" ;
|
|
||||||
}
|
|
||||||
|
|
||||||
AGENT_DIST=/opt/buildagent
|
|
||||||
|
|
||||||
CONFIG_DIR=/data/teamcity_agent/conf
|
|
||||||
|
|
||||||
LOG_DIR=/opt/buildagent/logs
|
|
||||||
|
|
||||||
|
|
||||||
rm -f ${LOG_DIR}/*.pid
|
|
||||||
|
|
||||||
if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then
|
|
||||||
echo "File buildAgent.properties was found in ${CONFIG_DIR}" ;
|
|
||||||
reconfigure
|
|
||||||
else
|
|
||||||
echo "Will create new buildAgent.properties using distributive" ;
|
|
||||||
if [[ -n "${SERVER_URL}" ]]; then
|
|
||||||
echo "TeamCity URL is provided: ${SERVER_URL}"
|
|
||||||
else
|
|
||||||
echo "TeamCity URL is not provided, but is required."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
prepare_conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then
|
|
||||||
${AGENT_DIST}/bin/agent.sh start
|
|
||||||
else
|
|
||||||
echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user"
|
|
||||||
chown -R buildagent:buildagent ${AGENT_DIST}
|
|
||||||
check; sync
|
|
||||||
|
|
||||||
echo "Start build agent under buildagent user"
|
|
||||||
sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
while [ ! -f ${LOG_DIR}/teamcity-agent.log ];
|
|
||||||
do
|
|
||||||
echo -n "."
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP
|
|
||||||
|
|
||||||
tail -qF ${LOG_DIR}/teamcity-agent.log &
|
|
||||||
wait
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo '/run-services.sh'
|
|
||||||
|
|
||||||
for entry in /services/*.sh
|
|
||||||
do
|
|
||||||
if [[ -f "$entry" ]]; then
|
|
||||||
echo "$entry"
|
|
||||||
[[ ! -x "$entry" ]] && (chmod +x "$entry"; sync)
|
|
||||||
"$entry"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo '/run-agent.sh'
|
|
||||||
exec '/run-agent.sh'
|
|
@ -1,7 +0,0 @@
|
|||||||
#main
|
|
||||||
deb http://ftp.ru.debian.org/debian/ sid main contrib non-free
|
|
||||||
deb-src http://ftp.ru.debian.org/debian/ sid main contrib non-free
|
|
||||||
|
|
||||||
##multimedia
|
|
||||||
#deb http://ftp.ru.debian.org/debian-multimedia/ sid main non-free
|
|
||||||
#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free
|
|
69
linux/teamcity/agent/php7.2/Dockerfile
Normal file
69
linux/teamcity/agent/php7.2/Dockerfile
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
FROM epicmorg/php:php7.2
|
||||||
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# installing java11
|
||||||
|
##################################################################
|
||||||
|
RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \
|
||||||
|
echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \
|
||||||
|
mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \
|
||||||
|
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \
|
||||||
|
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# teamcity minimal agent
|
||||||
|
##################################################################
|
||||||
|
LABEL dockerImage.teamcity.version="latest" \
|
||||||
|
dockerImage.teamcity.buildNumber="latest"
|
||||||
|
|
||||||
|
VOLUME /data/teamcity_agent/conf
|
||||||
|
|
||||||
|
ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties
|
||||||
|
ENV LANG=C.UTF-8
|
||||||
|
ENV GIT_SSH_VARIANT=ssh
|
||||||
|
|
||||||
|
COPY run-agent.sh /run-agent.sh
|
||||||
|
RUN chmod +x /run-agent.sh && \
|
||||||
|
sync
|
||||||
|
|
||||||
|
COPY run-services.sh /run-services.sh
|
||||||
|
RUN chmod +x /run-services.sh && \
|
||||||
|
sync
|
||||||
|
|
||||||
|
ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip
|
||||||
|
RUN unzip -q /buildAgent.zip -d /opt/buildagent && \
|
||||||
|
mv /opt/buildagent/conf /opt/buildagent/conf_dist && \
|
||||||
|
rm -rfv /buildAgent.zip
|
||||||
|
|
||||||
|
RUN useradd -m buildagent && \
|
||||||
|
chmod +x /opt/buildagent/bin/*.sh && \
|
||||||
|
chmod +x /run-agent.sh /run-services.sh && sync
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# php
|
||||||
|
##################################################################
|
||||||
|
RUN php -m && \
|
||||||
|
php -v
|
||||||
|
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# cleaninig up
|
||||||
|
##################################################################
|
||||||
|
RUN apt clean -y && \
|
||||||
|
apt-get clean all && \
|
||||||
|
apt autoclean -y && \
|
||||||
|
rm -rfv /var/lib/apt/lists/* && \
|
||||||
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
||||||
|
rm -rfv /tmp/deb/* && \
|
||||||
|
rm -rfv /tmp/composer-setup.php && \
|
||||||
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
rm -rfv /tmp/addons
|
||||||
|
|
||||||
|
CMD ["/run-services.sh"]
|
||||||
|
|
||||||
|
EXPOSE 9090
|
5
linux/teamcity/agent/php7.2/Makefile
Normal file
5
linux/teamcity/agent/php7.2/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
docker-compose build --compress
|
||||||
|
docker-compose push
|
93
linux/teamcity/agent/php7.2/README.md
Normal file
93
linux/teamcity/agent/php7.2/README.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
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/)
|
6
linux/teamcity/agent/php7.2/docker-compose.yml
Normal file
6
linux/teamcity/agent/php7.2/docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/teamcity-agent:php7.2"
|
||||||
|
build:
|
||||||
|
context: .
|
69
linux/teamcity/agent/php7.3/Dockerfile
Normal file
69
linux/teamcity/agent/php7.3/Dockerfile
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
FROM epicmorg/php:php7.3
|
||||||
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# installing java11
|
||||||
|
##################################################################
|
||||||
|
RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \
|
||||||
|
echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \
|
||||||
|
mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \
|
||||||
|
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \
|
||||||
|
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# teamcity minimal agent
|
||||||
|
##################################################################
|
||||||
|
LABEL dockerImage.teamcity.version="latest" \
|
||||||
|
dockerImage.teamcity.buildNumber="latest"
|
||||||
|
|
||||||
|
VOLUME /data/teamcity_agent/conf
|
||||||
|
|
||||||
|
ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties
|
||||||
|
ENV LANG=C.UTF-8
|
||||||
|
ENV GIT_SSH_VARIANT=ssh
|
||||||
|
|
||||||
|
COPY run-agent.sh /run-agent.sh
|
||||||
|
RUN chmod +x /run-agent.sh && \
|
||||||
|
sync
|
||||||
|
|
||||||
|
COPY run-services.sh /run-services.sh
|
||||||
|
RUN chmod +x /run-services.sh && \
|
||||||
|
sync
|
||||||
|
|
||||||
|
ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip
|
||||||
|
RUN unzip -q /buildAgent.zip -d /opt/buildagent && \
|
||||||
|
mv /opt/buildagent/conf /opt/buildagent/conf_dist && \
|
||||||
|
rm -rfv /buildAgent.zip
|
||||||
|
|
||||||
|
RUN useradd -m buildagent && \
|
||||||
|
chmod +x /opt/buildagent/bin/*.sh && \
|
||||||
|
chmod +x /run-agent.sh /run-services.sh && sync
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# php
|
||||||
|
##################################################################
|
||||||
|
RUN php -m && \
|
||||||
|
php -v
|
||||||
|
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# cleaninig up
|
||||||
|
##################################################################
|
||||||
|
RUN apt clean -y && \
|
||||||
|
apt-get clean all && \
|
||||||
|
apt autoclean -y && \
|
||||||
|
rm -rfv /var/lib/apt/lists/* && \
|
||||||
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
||||||
|
rm -rfv /tmp/deb/* && \
|
||||||
|
rm -rfv /tmp/composer-setup.php && \
|
||||||
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
rm -rfv /tmp/addons
|
||||||
|
|
||||||
|
CMD ["/run-services.sh"]
|
||||||
|
|
||||||
|
EXPOSE 9090
|
5
linux/teamcity/agent/php7.3/Makefile
Normal file
5
linux/teamcity/agent/php7.3/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
docker-compose build --compress
|
||||||
|
docker-compose push
|
93
linux/teamcity/agent/php7.3/README.md
Normal file
93
linux/teamcity/agent/php7.3/README.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
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/)
|
6
linux/teamcity/agent/php7.3/docker-compose.yml
Normal file
6
linux/teamcity/agent/php7.3/docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/teamcity-agent:php7.3"
|
||||||
|
build:
|
||||||
|
context: .
|
69
linux/teamcity/agent/php7.4/Dockerfile
Normal file
69
linux/teamcity/agent/php7.4/Dockerfile
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
FROM epicmorg/php:php7.4
|
||||||
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# installing java11
|
||||||
|
##################################################################
|
||||||
|
RUN wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \
|
||||||
|
echo 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main' > /etc/apt/sources.list.d/adoptopenjdk-official.list && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get install -y --allow-unauthenticated adoptopenjdk-11-hotspot && \
|
||||||
|
mkdir /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre && \
|
||||||
|
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/bin/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/bin && \
|
||||||
|
ln -s /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/lib/ /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64/jre/lib
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# teamcity minimal agent
|
||||||
|
##################################################################
|
||||||
|
LABEL dockerImage.teamcity.version="latest" \
|
||||||
|
dockerImage.teamcity.buildNumber="latest"
|
||||||
|
|
||||||
|
VOLUME /data/teamcity_agent/conf
|
||||||
|
|
||||||
|
ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties
|
||||||
|
ENV LANG=C.UTF-8
|
||||||
|
ENV GIT_SSH_VARIANT=ssh
|
||||||
|
|
||||||
|
COPY run-agent.sh /run-agent.sh
|
||||||
|
RUN chmod +x /run-agent.sh && \
|
||||||
|
sync
|
||||||
|
|
||||||
|
COPY run-services.sh /run-services.sh
|
||||||
|
RUN chmod +x /run-services.sh && \
|
||||||
|
sync
|
||||||
|
|
||||||
|
ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip
|
||||||
|
RUN unzip -q /buildAgent.zip -d /opt/buildagent && \
|
||||||
|
mv /opt/buildagent/conf /opt/buildagent/conf_dist && \
|
||||||
|
rm -rfv /buildAgent.zip
|
||||||
|
|
||||||
|
RUN useradd -m buildagent && \
|
||||||
|
chmod +x /opt/buildagent/bin/*.sh && \
|
||||||
|
chmod +x /run-agent.sh /run-services.sh && sync
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# php
|
||||||
|
##################################################################
|
||||||
|
RUN php -m && \
|
||||||
|
php -v
|
||||||
|
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# cleaninig up
|
||||||
|
##################################################################
|
||||||
|
RUN apt clean -y && \
|
||||||
|
apt-get clean all && \
|
||||||
|
apt autoclean -y && \
|
||||||
|
rm -rfv /var/lib/apt/lists/* && \
|
||||||
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
||||||
|
rm -rfv /tmp/deb/* && \
|
||||||
|
rm -rfv /tmp/composer-setup.php && \
|
||||||
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
rm -rfv /tmp/addons
|
||||||
|
|
||||||
|
CMD ["/run-services.sh"]
|
||||||
|
|
||||||
|
EXPOSE 9090
|
5
linux/teamcity/agent/php7.4/Makefile
Normal file
5
linux/teamcity/agent/php7.4/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
docker-compose build --compress
|
||||||
|
docker-compose push
|
93
linux/teamcity/agent/php7.4/README.md
Normal file
93
linux/teamcity/agent/php7.4/README.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
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/)
|
6
linux/teamcity/agent/php7.4/docker-compose.yml
Normal file
6
linux/teamcity/agent/php7.4/docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/teamcity-agent:php7.4"
|
||||||
|
build:
|
||||||
|
context: .
|
31
linux/teamcity/agent/steam-sdk/Dockerfile
Normal file
31
linux/teamcity/agent/steam-sdk/Dockerfile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
FROM epicmorg/teamcity-agent:latest
|
||||||
|
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# steam runtime and ssdk
|
||||||
|
##################################################################
|
||||||
|
RUN cd / && \
|
||||||
|
sudo mkdir valve && \
|
||||||
|
cd valve && \
|
||||||
|
sudo wget http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz && \
|
||||||
|
sudo tar xvf steam-runtime-sdk_latest.tar.xz && \
|
||||||
|
sudo mv steam-runtime-sdk_2013-09-05 steam-runtime && \
|
||||||
|
sudo chown root:root * -R && \
|
||||||
|
cd steam-runtime && \
|
||||||
|
printf '%s\n' 3 1 Y Y Y | ./setup.sh
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# cleaninig up
|
||||||
|
##################################################################
|
||||||
|
RUN apt clean -y && \
|
||||||
|
apt-get clean all && \
|
||||||
|
apt autoclean -y && \
|
||||||
|
rm -rfv /var/lib/apt/lists/* && \
|
||||||
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
||||||
|
rm -rfv /tmp/deb/* && \
|
||||||
|
rm -rfv /tmp/composer-setup.php && \
|
||||||
|
rm -rfv /tmp/amxx_base_latest.tar.gz && \
|
||||||
|
rm -rfv /tmp/atlassian-plugin-sdk.deb && \
|
||||||
|
rm -rfv /tmp/addons
|
||||||
|
|
5
linux/teamcity/agent/steam-sdk/Makefile
Normal file
5
linux/teamcity/agent/steam-sdk/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
docker-compose build --compress
|
||||||
|
docker-compose push
|
93
linux/teamcity/agent/steam-sdk/README.md
Normal file
93
linux/teamcity/agent/steam-sdk/README.md
Normal 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
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
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/)
|
6
linux/teamcity/agent/steam-sdk/docker-compose.yml
Normal file
6
linux/teamcity/agent/steam-sdk/docker-compose.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/teamcity-agent:steam-sdk"
|
||||||
|
build:
|
||||||
|
context: .
|
Loading…
Reference in New Issue
Block a user