Skip to content

Commit

Permalink
QD-7123 Merge internal and public versions
Browse files Browse the repository at this point in the history
  • Loading branch information
tiulpin committed Nov 29, 2023
1 parent 0f64b26 commit ed086be
Show file tree
Hide file tree
Showing 111 changed files with 4,138 additions and 23 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
matrix:
platform: [ linux/amd64 ] # linux/arm64
os: [ ubuntu-latest ]
version: [ 2023.2 ]
version: [ 2023.3 ]
linter: [ android-community, dotnet, go, js, jvm, jvm-community, php, python, python-community ]
runs-on: ${{ matrix.os }}
steps:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
.idea/

# AWS User-specific
.idea/**/aws.xml
Expand Down
218 changes: 218 additions & 0 deletions 2023.2/base/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
The base images are used to build the internal Qodana images. They are not intended to be used directly, but are built regularly to minimize the build time of the Qodana images.

The [images are built on TeamCity](https://buildserver.labs.intellij.net/buildConfiguration/StaticAnalysis_Infrastructure_DockerBase) and pushed to [our internal registry](https://jetbrains.team/p/sa/packages/container/containers).

To build them all locally, you can run the following command

```shell
docker buildx bake
```

With `--print` option in the previous command you'll get the full picture of images we do build:

```json
{
"group": {
"default": {
"targets": [
"debian",
"debian-js",
"python",
"python-js",
"other"
]
},
"other": {
"targets": [
"dotnet-base",
"go-base",
"js-base",
"php-base",
"rust-base",
"ruby-base"
]
}
},
"target": {
"debian": {
"context": ".",
"dockerfile": "debian.Dockerfile",
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:debian-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"debian-js": {
"context": ".",
"contexts": {
"debianbase": "target:debian"
},
"dockerfile": "debian.js.Dockerfile",
"args": {
"NODE_TAG": "16-bullseye-slim"
},
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:debian-js-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"dotnet-base": {
"context": ".",
"dockerfile": "dotnet.Dockerfile",
"args": {
"COMPOSER_TAG": "2.5.1",
"DOTNET_TAG": "6.0-bullseye-slim",
"GO_TAG": "1.19-bullseye",
"NODE_TAG": "16-bullseye-slim",
"PHP_TAG": "8.1-cli-bullseye",
"RUBY_TAG": "3.0-bullseye",
"RUST_TAG": "1.71-slim-bullseye"
},
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:dotnet-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"go-base": {
"context": ".",
"dockerfile": "go.Dockerfile",
"args": {
"COMPOSER_TAG": "2.5.1",
"DOTNET_TAG": "6.0-bullseye-slim",
"GO_TAG": "1.19-bullseye",
"NODE_TAG": "16-bullseye-slim",
"PHP_TAG": "8.1-cli-bullseye",
"RUBY_TAG": "3.0-bullseye",
"RUST_TAG": "1.71-slim-bullseye"
},
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:go-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"js-base": {
"context": ".",
"dockerfile": "js.Dockerfile",
"args": {
"COMPOSER_TAG": "2.5.1",
"DOTNET_TAG": "6.0-bullseye-slim",
"GO_TAG": "1.19-bullseye",
"NODE_TAG": "16-bullseye-slim",
"PHP_TAG": "8.1-cli-bullseye",
"RUBY_TAG": "3.0-bullseye",
"RUST_TAG": "1.71-slim-bullseye"
},
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:js-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"php-base": {
"context": ".",
"dockerfile": "php.Dockerfile",
"args": {
"COMPOSER_TAG": "2.5.1",
"DOTNET_TAG": "6.0-bullseye-slim",
"GO_TAG": "1.19-bullseye",
"NODE_TAG": "16-bullseye-slim",
"PHP_TAG": "8.1-cli-bullseye",
"RUBY_TAG": "3.0-bullseye",
"RUST_TAG": "1.71-slim-bullseye"
},
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:php-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"python": {
"context": ".",
"contexts": {
"debianbase": "target:debian"
},
"dockerfile": "python.Dockerfile",
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:python-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"python-js": {
"context": ".",
"contexts": {
"pythonbase": "target:python"
},
"dockerfile": "python.js.Dockerfile",
"args": {
"NODE_TAG": "16-bullseye-slim"
},
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:python-js-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"ruby-base": {
"context": ".",
"dockerfile": "ruby.Dockerfile",
"args": {
"COMPOSER_TAG": "2.5.1",
"DOTNET_TAG": "6.0-bullseye-slim",
"GO_TAG": "1.19-bullseye",
"NODE_TAG": "16-bullseye-slim",
"PHP_TAG": "8.1-cli-bullseye",
"RUBY_TAG": "3.0-bullseye",
"RUST_TAG": "1.71-slim-bullseye"
},
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:ruby-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
},
"rust-base": {
"context": ".",
"dockerfile": "rust.Dockerfile",
"args": {
"COMPOSER_TAG": "2.5.1",
"DOTNET_TAG": "6.0-bullseye-slim",
"GO_TAG": "1.19-bullseye",
"NODE_TAG": "16-bullseye-slim",
"PHP_TAG": "8.1-cli-bullseye",
"RUBY_TAG": "3.0-bullseye",
"RUST_TAG": "1.71-slim-bullseye"
},
"tags": [
"registry.jetbrains.team/p/sa/containers/qodana:rust-base"
],
"platforms": [
"linux/amd64",
"linux/arm64"
]
}
}
}
```
33 changes: 33 additions & 0 deletions 2023.2/base/debian.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
ARG BASE_TAG="bullseye-slim"
ARG NODE_TAG="16-bullseye-slim"
FROM node:$NODE_TAG AS node_base
FROM debian:$BASE_TAG

ENV HOME="/root" \
LC_ALL="en_US.UTF-8" \
QODANA_DIST="/opt/idea" \
QODANA_DATA="/data" \
QODANA_DOCKER="true"
ENV JAVA_HOME="$QODANA_DIST/jbr" \
QODANA_CONF="$HOME/.config/idea" \
PATH="$QODANA_DIST/bin:$PATH"

# hadolint ignore=SC2174,DL3009
RUN --mount=target=/var/lib/apt/lists,type=cache,sharing=locked \
--mount=target=/var/cache/apt,type=cache,sharing=locked \
rm -f /etc/apt/apt.conf.d/docker-clean && \
mkdir -m 777 -p /opt $QODANA_DATA $QODANA_CONF && apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates=20210119 \
curl=7.74.0-1.3+deb11u10 \
fontconfig=2.13.1-4.2 \
git=1:2.30.2-1+deb11u2 \
git-lfs=2.13.2-1+b5 \
gnupg2=2.2.27-2+deb11u2 \
locales=2.31-13+deb11u6 \
procps=2:3.3.17-5 && \
echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && locale-gen && \
apt-get autoremove -y && apt-get clean && \
chmod 777 -R $HOME && \
echo 'root:x:0:0:root:/root:/bin/bash' > /etc/passwd && chmod 666 /etc/passwd && \
git config --global --add safe.directory '*'
17 changes: 17 additions & 0 deletions 2023.2/base/debian.js.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
ARG NODE_TAG="16-bullseye-slim"
FROM node:$NODE_TAG AS node_base
FROM debianbase

ENV PATH="/opt/yarn/bin:$PATH"
COPY --from=node_base /usr/local/bin/node /usr/local/bin/
COPY --from=node_base /usr/local/include/node /usr/local/include/node
COPY --from=node_base /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=node_base /opt/yarn-* /opt/yarn/
RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && \
ln -s /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx && \
ln -s /usr/local/lib/node_modules/corepack/dist/corepack.js /usr/local/bin/corepack && \
node --version && \
npm --version && \
yarn --version && \
npm install -g [email protected] [email protected] && npm config set update-notifier false && \
chmod 777 -R "$HOME/.npm" "$HOME/.npmrc"
Loading

0 comments on commit ed086be

Please sign in to comment.