Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions 1.20/26.2.3/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# vim:set ft=dockerfile:

# Do not edit individual Dockerfiles manually. Instead, please make changes to the Dockerfile.template, which will be used by the build script to generate Dockerfiles.

# By policy, the base image tag should be a quarterly tag unless there's a
# specific reason to use a different one. This means January, April, July, or
# October.

FROM cimg/base:2024.06-20.04

LABEL maintainer="CircleCI Execution Team <eng-execution@circleci.com>"

# Install Erlang via Erlang Solutions' .deb
ENV ERLANG_VERSION="26.2.3"
RUN BASE_MAJOR_VERSION=$(echo "2024.06-20.04" | cut -d '.' -f 1) && \
BASE_MINOR_VERSION=$(echo "2024.06-20.04" | cut -d '.' -f 2) && \
# For ubuntu 24 the package and the dependencies are differents
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
libncurses5 \
libodbc1 \
libsctp1 \
libwxgtk3.0 && \
if [ "$BASE_MAJOR_VERSION" != "2024" ]; then \
erlangDEB="https://binaries2.erlang-solutions.com/ubuntu/pool/contrib/e/esl-erlang/esl-erlang_${ERLANG_VERSION}-1~ubuntu~jammy_amd64.deb"; \
else \
erlangDEB="https://binaries2.erlang-solutions.com/ubuntu/pool/contrib/e/esl-erlang/esl-erlang_${ERLANG_VERSION}-1~ubuntu~focal_amd64.deb"; \
fi && \
curl -sSL -o erlang.deb $erlangDEB && \
sudo dpkg -i erlang.deb && \
sudo rm -rf erlang.deb /var/lib/apt/lists/*

# Install Elixir via Erlang Solutions' .deb
ENV ELIXIR_VERSION=1.20.0
RUN ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/v${ELIXIR_VERSION}.tar.gz" && \
curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL && \
sudo mkdir -p /usr/local/src/elixir && \
sudo tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz && \
rm elixir-src.tar.gz && \
cd /usr/local/src/elixir && \
sudo make install clean && \
elixir --version
62 changes: 62 additions & 0 deletions 1.20/26.2.3/browsers/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# vim:set ft=dockerfile:

FROM cimg/elixir:1.20.0-erlang-26.2.3-node

LABEL maintainer="CircleCI Community & Partner Engineering Team <community-partner@circleci.com>"

# Install Selenium
ENV SELENIUM_VER=3.141.59
RUN curl -sSL -o selenium-server-standalone-${SELENIUM_VER}.jar "https://selenium-release.storage.googleapis.com/${SELENIUM_VER%.*}/selenium-server-standalone-${SELENIUM_VER}.jar" && \
sudo cp selenium-server-standalone-${SELENIUM_VER}.jar /usr/local/bin/selenium.jar && \
rm selenium-server-standalone-${SELENIUM_VER}.jar

RUN sudo apt-get update && \
sudo apt-get install --yes --no-install-recommends \
xvfb \
&& \
# Install Java only if it's not already available
# Java is installed for Selenium
if ! command -v java > /dev/null; then \
echo "Java not found in parent image, installing..." && \
sudo apt-get install -y --no-install-recommends --no-upgrade openjdk-11-jre; \
fi && \
sudo rm -rf /var/lib/apt/lists/*

# Below is setup to allow xvfb to start when the container starts up.
# The label in particular allows this image to override what CircleCI does
# when booting the image.
LABEL com.circleci.preserve-entrypoint=true
ENV DISPLAY=":99"
#RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint && \
# chmod +x /tmp/entrypoint && \
# sudo mv /tmp/entrypoint /docker-entrypoint.sh
RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' | sudo tee /docker-entrypoint.sh && \
sudo chmod +x /docker-entrypoint.sh

# Install a single version of Firefox. This isn't intended to be a regularly
# updated thing. Instead, if this version of Firefox isn't what the end user
# wants they should install a different version via the Browser Tools Orb.
#
# Canonical made a major technology change in how Firefox is installed from
# Ubuntu 21.10 and up. The general CI space doesn't seem to be ready for a snap
# based Firefox right now so we are installing it from the Mozilla PPA.
RUN echo 'Package: *' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
echo 'Pin: release o=LP-PPA-mozillateam' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
echo 'Pin-Priority: 1001' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
sudo add-apt-repository --yes ppa:mozillateam/ppa && \
sudo apt-get install --no-install-recommends --yes firefox && \
sudo rm -rf /var/lib/apt/lists/* && \
firefox --version

# Install a single version of Google Chrome Stable. This isn't intended to be a
# regularly updated thing. Instead, if this version of Chrome isn't what the
# end user wants they should install a different version via the Browser Tools
# Orb.
RUN wget -q -O - "https://dl.google.com/linux/linux_signing_key.pub" | sudo apt-key add - && \
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list && \
sudo apt-get update && \
sudo apt-get install google-chrome-stable && \
sudo rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/bin/sh"]
16 changes: 16 additions & 0 deletions 1.20/26.2.3/node/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# vim:set ft=dockerfile:

FROM cimg/elixir:1.20.0-erlang-26.2.3

LABEL maintainer="Community & Partner Engineering Team <community-partner@circleci.com>"

# Dockerfile will pull the latest LTS release from cimg-node.
RUN curl -sSL "https://raw.githubusercontent.com/CircleCI-Public/cimg-node/main/ALIASES" -o nodeAliases.txt && \
NODE_VERSION=$(grep "lts" ./nodeAliases.txt | cut -d "=" -f 2-) && \
[[ $(uname -m) == "x86_64" ]] && ARCH="x64" || ARCH="arm64" && \
curl -L -o node.tar.xz "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${ARCH}.tar.xz" && \
sudo tar -xJf node.tar.xz -C /usr/local --strip-components=1 && \
rm node.tar.xz nodeAliases.txt && \
sudo ln -s /usr/local/bin/node /usr/local/bin/nodejs

RUN sudo npm install -g yarn pnpm
41 changes: 41 additions & 0 deletions 1.20/27.2.2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# vim:set ft=dockerfile:

# Do not edit individual Dockerfiles manually. Instead, please make changes to the Dockerfile.template, which will be used by the build script to generate Dockerfiles.

# By policy, the base image tag should be a quarterly tag unless there's a
# specific reason to use a different one. This means January, April, July, or
# October.

FROM cimg/base:2024.06-20.04

LABEL maintainer="CircleCI Execution Team <eng-execution@circleci.com>"

# Install Erlang via Erlang Solutions' .deb
ENV ERLANG_VERSION="27.2.2"
RUN BASE_MAJOR_VERSION=$(echo "2024.06-20.04" | cut -d '.' -f 1) && \
BASE_MINOR_VERSION=$(echo "2024.06-20.04" | cut -d '.' -f 2) && \
# For ubuntu 24 the package and the dependencies are differents
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
libncurses5 \
libodbc1 \
libsctp1 \
libwxgtk3.0 && \
if [ "$BASE_MAJOR_VERSION" != "2024" ]; then \
erlangDEB="https://binaries2.erlang-solutions.com/ubuntu/pool/contrib/e/esl-erlang/esl-erlang_${ERLANG_VERSION}-1~ubuntu~jammy_amd64.deb"; \
else \
erlangDEB="https://binaries2.erlang-solutions.com/ubuntu/pool/contrib/e/esl-erlang/esl-erlang_${ERLANG_VERSION}-1~ubuntu~focal_amd64.deb"; \
fi && \
curl -sSL -o erlang.deb $erlangDEB && \
sudo dpkg -i erlang.deb && \
sudo rm -rf erlang.deb /var/lib/apt/lists/*

# Install Elixir via Erlang Solutions' .deb
ENV ELIXIR_VERSION=1.20.0
RUN ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/v${ELIXIR_VERSION}.tar.gz" && \
curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL && \
sudo mkdir -p /usr/local/src/elixir && \
sudo tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz && \
rm elixir-src.tar.gz && \
cd /usr/local/src/elixir && \
sudo make install clean && \
elixir --version
62 changes: 62 additions & 0 deletions 1.20/27.2.2/browsers/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# vim:set ft=dockerfile:

FROM cimg/elixir:1.20.0-erlang-27.2.2-node

LABEL maintainer="CircleCI Community & Partner Engineering Team <community-partner@circleci.com>"

# Install Selenium
ENV SELENIUM_VER=3.141.59
RUN curl -sSL -o selenium-server-standalone-${SELENIUM_VER}.jar "https://selenium-release.storage.googleapis.com/${SELENIUM_VER%.*}/selenium-server-standalone-${SELENIUM_VER}.jar" && \
sudo cp selenium-server-standalone-${SELENIUM_VER}.jar /usr/local/bin/selenium.jar && \
rm selenium-server-standalone-${SELENIUM_VER}.jar

RUN sudo apt-get update && \
sudo apt-get install --yes --no-install-recommends \
xvfb \
&& \
# Install Java only if it's not already available
# Java is installed for Selenium
if ! command -v java > /dev/null; then \
echo "Java not found in parent image, installing..." && \
sudo apt-get install -y --no-install-recommends --no-upgrade openjdk-11-jre; \
fi && \
sudo rm -rf /var/lib/apt/lists/*

# Below is setup to allow xvfb to start when the container starts up.
# The label in particular allows this image to override what CircleCI does
# when booting the image.
LABEL com.circleci.preserve-entrypoint=true
ENV DISPLAY=":99"
#RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint && \
# chmod +x /tmp/entrypoint && \
# sudo mv /tmp/entrypoint /docker-entrypoint.sh
RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' | sudo tee /docker-entrypoint.sh && \
sudo chmod +x /docker-entrypoint.sh

# Install a single version of Firefox. This isn't intended to be a regularly
# updated thing. Instead, if this version of Firefox isn't what the end user
# wants they should install a different version via the Browser Tools Orb.
#
# Canonical made a major technology change in how Firefox is installed from
# Ubuntu 21.10 and up. The general CI space doesn't seem to be ready for a snap
# based Firefox right now so we are installing it from the Mozilla PPA.
RUN echo 'Package: *' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
echo 'Pin: release o=LP-PPA-mozillateam' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
echo 'Pin-Priority: 1001' | sudo tee -a /etc/apt/preferences.d/firefox.pref && \
sudo add-apt-repository --yes ppa:mozillateam/ppa && \
sudo apt-get install --no-install-recommends --yes firefox && \
sudo rm -rf /var/lib/apt/lists/* && \
firefox --version

# Install a single version of Google Chrome Stable. This isn't intended to be a
# regularly updated thing. Instead, if this version of Chrome isn't what the
# end user wants they should install a different version via the Browser Tools
# Orb.
RUN wget -q -O - "https://dl.google.com/linux/linux_signing_key.pub" | sudo apt-key add - && \
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list && \
sudo apt-get update && \
sudo apt-get install google-chrome-stable && \
sudo rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/bin/sh"]
16 changes: 16 additions & 0 deletions 1.20/27.2.2/node/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# vim:set ft=dockerfile:

FROM cimg/elixir:1.20.0-erlang-27.2.2

LABEL maintainer="Community & Partner Engineering Team <community-partner@circleci.com>"

# Dockerfile will pull the latest LTS release from cimg-node.
RUN curl -sSL "https://raw.githubusercontent.com/CircleCI-Public/cimg-node/main/ALIASES" -o nodeAliases.txt && \
NODE_VERSION=$(grep "lts" ./nodeAliases.txt | cut -d "=" -f 2-) && \
[[ $(uname -m) == "x86_64" ]] && ARCH="x64" || ARCH="arm64" && \
curl -L -o node.tar.xz "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${ARCH}.tar.xz" && \
sudo tar -xJf node.tar.xz -C /usr/local --strip-components=1 && \
rm node.tar.xz nodeAliases.txt && \
sudo ln -s /usr/local/bin/node /usr/local/bin/nodejs

RUN sudo npm install -g yarn pnpm
2 changes: 1 addition & 1 deletion GEN-CHECK
Original file line number Diff line number Diff line change
@@ -1 +1 @@
GEN_CHECK=(1.19.5)
GEN_CHECK=(1.20.0)
12 changes: 6 additions & 6 deletions build-images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
# Do not edit by hand; please use build scripts/templates to make changes
set -eo pipefail

docker build --file 1.19/26.2.3/Dockerfile -t cimg/elixir:1.19.5-erlang-26.2.3 -t cimg/elixir:1.19-erlang-26.2.3 --platform linux/amd64 --push .
docker build --file 1.19/26.2.3/node/Dockerfile -t cimg/elixir:1.19.5-erlang-26.2.3-node -t cimg/elixir:1.19-erlang-26.2.3-node --platform linux/amd64 --push .
docker build --file 1.19/26.2.3/browsers/Dockerfile -t cimg/elixir:1.19.5-erlang-26.2.3-browsers -t cimg/elixir:1.19-erlang-26.2.3-browsers --platform linux/amd64 --push .
docker build --file 1.19/27.2.2/Dockerfile -t cimg/elixir:1.19.5-erlang-27.2.2 -t cimg/elixir:1.19-erlang-27.2.2 --platform linux/amd64 --push .
docker build --file 1.19/27.2.2/node/Dockerfile -t cimg/elixir:1.19.5-erlang-27.2.2-node -t cimg/elixir:1.19-erlang-27.2.2-node --platform linux/amd64 --push .
docker build --file 1.19/27.2.2/browsers/Dockerfile -t cimg/elixir:1.19.5-erlang-27.2.2-browsers -t cimg/elixir:1.19-erlang-27.2.2-browsers --platform linux/amd64 --push .
docker build --file 1.20/26.2.3/Dockerfile -t cimg/elixir:1.20.0-erlang-26.2.3 -t cimg/elixir:1.20-erlang-26.2.3 --platform linux/amd64 --push .
docker build --file 1.20/26.2.3/node/Dockerfile -t cimg/elixir:1.20.0-erlang-26.2.3-node -t cimg/elixir:1.20-erlang-26.2.3-node --platform linux/amd64 --push .
docker build --file 1.20/26.2.3/browsers/Dockerfile -t cimg/elixir:1.20.0-erlang-26.2.3-browsers -t cimg/elixir:1.20-erlang-26.2.3-browsers --platform linux/amd64 --push .
docker build --file 1.20/27.2.2/Dockerfile -t cimg/elixir:1.20.0-erlang-27.2.2 -t cimg/elixir:1.20-erlang-27.2.2 --platform linux/amd64 --push .
docker build --file 1.20/27.2.2/node/Dockerfile -t cimg/elixir:1.20.0-erlang-27.2.2-node -t cimg/elixir:1.20-erlang-27.2.2-node --platform linux/amd64 --push .
docker build --file 1.20/27.2.2/browsers/Dockerfile -t cimg/elixir:1.20.0-erlang-27.2.2-browsers -t cimg/elixir:1.20-erlang-27.2.2-browsers --platform linux/amd64 --push .
48 changes: 24 additions & 24 deletions push-images.sh
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
#!/usr/bin/env bash
# Do not edit by hand; please use build scripts/templates to make changes
set -eo pipefail
docker push cimg/elixir:1.19-erlang-26.2.3
docker push cimg/elixir:1.19.5-erlang-26.2.3
docker push cimg/elixir:1.19-erlang-26.2.3-node
docker push cimg/elixir:1.19.5-erlang-26.2.3-node
docker push cimg/elixir:1.19-erlang-26.2.3-browsers
docker push cimg/elixir:1.19.5-erlang-26.2.3-browsers
docker push cimg/elixir:1.19-erlang-27.2.2
docker push cimg/elixir:1.19.5-erlang-27.2.2
docker tag cimg/elixir:1.19.5-erlang-27.2.2 cimg/elixir:1.19.5
docker tag cimg/elixir:1.19-erlang-27.2.2 cimg/elixir:1.19
docker push cimg/elixir:1.19
docker push cimg/elixir:1.19.5
docker push cimg/elixir:1.19-erlang-27.2.2-node
docker push cimg/elixir:1.19.5-erlang-27.2.2-node
docker tag cimg/elixir:1.19.5-erlang-27.2.2-node cimg/elixir:1.19.5-node
docker tag cimg/elixir:1.19-erlang-27.2.2-node cimg/elixir:1.19-node
docker push cimg/elixir:1.19-node
docker push cimg/elixir:1.19.5-node
docker push cimg/elixir:1.19-erlang-27.2.2-browsers
docker push cimg/elixir:1.19.5-erlang-27.2.2-browsers
docker tag cimg/elixir:1.19.5-erlang-27.2.2-browsers cimg/elixir:1.19.5-browsers
docker tag cimg/elixir:1.19-erlang-27.2.2-browsers cimg/elixir:1.19-browsers
docker push cimg/elixir:1.19-browsers
docker push cimg/elixir:1.19.5-browsers
docker push cimg/elixir:1.20-erlang-26.2.3
docker push cimg/elixir:1.20.0-erlang-26.2.3
docker push cimg/elixir:1.20-erlang-26.2.3-node
docker push cimg/elixir:1.20.0-erlang-26.2.3-node
docker push cimg/elixir:1.20-erlang-26.2.3-browsers
docker push cimg/elixir:1.20.0-erlang-26.2.3-browsers
docker push cimg/elixir:1.20-erlang-27.2.2
docker push cimg/elixir:1.20.0-erlang-27.2.2
docker tag cimg/elixir:1.20.0-erlang-27.2.2 cimg/elixir:1.20.0
docker tag cimg/elixir:1.20-erlang-27.2.2 cimg/elixir:1.20
docker push cimg/elixir:1.20
docker push cimg/elixir:1.20.0
docker push cimg/elixir:1.20-erlang-27.2.2-node
docker push cimg/elixir:1.20.0-erlang-27.2.2-node
docker tag cimg/elixir:1.20.0-erlang-27.2.2-node cimg/elixir:1.20.0-node
docker tag cimg/elixir:1.20-erlang-27.2.2-node cimg/elixir:1.20-node
docker push cimg/elixir:1.20-node
docker push cimg/elixir:1.20.0-node
docker push cimg/elixir:1.20-erlang-27.2.2-browsers
docker push cimg/elixir:1.20.0-erlang-27.2.2-browsers
docker tag cimg/elixir:1.20.0-erlang-27.2.2-browsers cimg/elixir:1.20.0-browsers
docker tag cimg/elixir:1.20-erlang-27.2.2-browsers cimg/elixir:1.20-browsers
docker push cimg/elixir:1.20-browsers
docker push cimg/elixir:1.20.0-browsers