LABEL maintainer=Clement Verna <cverna@fedoraproject.org> |
ENV DISTTAG=f39container FGC=f39 FBR=f39 |
ADD fedora-39-x86_64.tar.xz / # buildkit |
CMD ["/bin/bash"] |
RUN /bin/sh -c dnf update -y && dnf install -y curl git git-lfs htop vim nano tar bzip2 unzip python3-pip && rm -rf /var/cache/dnf && git lfs install && curl -fsSL https://code-server.dev/install.sh | sh # buildkit |
RUN /bin/sh -c useradd -u 1000 coder # buildkit |
COPY code-server.tar.gz /tmp # buildkit |
COPY settings.json /tmp # buildkit |
COPY config.yaml /tmp # buildkit |
COPY project-creator.py /tmp # buildkit |
COPY entrypoint.sh /usr/bin # buildkit |
ARG WPILIB_DL_URL |
ARG WPILIB_FILE_NAME=wpilib.tar.gz |
RUN |2 WPILIB_DL_URL=https://packages.wpilib.workers.dev/installer/v2025.2.1/Linux/WPILib_Linux-2025.2.1.tar.gz WPILIB_FILE_NAME=wpilib.tar.gz /bin/sh -c chmod 755 /usr/bin/entrypoint.sh && curl -fsSL ${WPILIB_DL_URL} -o /tmp/${WPILIB_FILE_NAME} && tar -xzf "/tmp/${WPILIB_FILE_NAME}" -C /tmp && WPILIB_ARTIFACTS="$(find /tmp -type f -name 'WPILib_Linux-*-artifacts.tar.gz' -print)" && ARTIFACTSYEAR="$(echo $WPILIB_ARTIFACTS | cut -d '-' -f 2 | cut -d '.' -f 1)" && mkdir -p /home/coder/wpilib/$ARTIFACTSYEAR && tar -xzf "$WPILIB_ARTIFACTS" -C /home/coder/wpilib/$ARTIFACTSYEAR && chown -R coder:coder /home/coder/wpilib && rm -f /tmp/${WPILIB_FILE_NAME} && rm -rf "$(find /tmp -type d -name 'WPILib_Linux-*' -print)" && GRADLEZIP="$(ls /home/coder/wpilib/$ARTIFACTSYEAR/installUtils | grep 'gradle-.*-bin.zip')" && GRADLEFOLDER="/home/coder/gradle-$(echo \"$GRADLEZIP\" | cut -d '-' -f 2)" && unzip /home/coder/wpilib/$ARTIFACTSYEAR/installUtils/$GRADLEZIP -d /home/coder/ && chown -R coder:coder $GRADLEFOLDER && mkdir /home/coder/.bashrc.d && touch /home/coder/.bashrc.d/wpilib.sh && chown -R coder:coder /home/coder/.bashrc.d && echo "export JAVA_HOME=/home/coder/wpilib/$ARTIFACTSYEAR/jdk" >> "/home/coder/.bashrc.d/wpilib.sh" && echo "export PATH=$PATH:/home/coder/wpilib/$ARTIFACTSYEAR/jdk/bin" >> "/home/coder/.bashrc.d/wpilib.sh" && echo "export PATH=$PATH:$GRADLEFOLDER/bin" >> "/home/coder/.bashrc.d/wpilib.sh" && source /home/coder/.bashrc.d/wpilib.sh && su -c "/home/coder/wpilib/$ARTIFACTSYEAR/jdk/bin/java -jar /home/coder/wpilib/$ARTIFACTSYEAR/maven/MavenMetaDataFixer.jar" "coder" && rm -rf /home/coder/wpilib/$ARTIFACTSYEAR/advantagescope && rm -f /home/coder/wpilib/$ARTIFACTSYEAR/installUtils/$GRADLEZIP && rm -rf /home/coder/wpilib/$ARTIFACTSYEAR/tools && rm -rf /home/coder/wpilib/$ARTIFACTSYEAR/documentation && rm -rf /root/.cache && su -c "mkdir -p /home/coder/.local/share" "coder" && su -c "mkdir -p /home/coder/.config/code-server" "coder" && su -c "tar -xzf /tmp/code-server.tar.gz -C /home/coder/.local/share" "coder" && su -c "cp -f /tmp/settings.json /home/coder/.local/share/code-server/User" "coder" && su -c "sed -i 's/###YEAR###/$ARTIFACTSYEAR/g;' /home/coder/.local/share/code-server/User/settings.json" "coder" && su -c "cp -f /tmp/config.yaml /home/coder/.config/code-server" "coder" && su -c "cp -f /tmp/project-creator.py /home/coder" "coder" && for EXTENSION in /home/coder/wpilib/$ARTIFACTSYEAR/vsCodeExtensions/*.vsix; do su -c "code-server --install-extension $EXTENSION" "coder"; done # buildkit |
EXPOSE map[8080/tcp:{}] |
USER coder |
ENV USER=coder |
WORKDIR /home/coder |
ENTRYPOINT ["/usr/bin/entrypoint.sh" "coder"] |