Files
hustoj/install/Dockerfile
2024-10-10 12:56:56 +08:00

73 lines
4.3 KiB
Docker

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND noninteractive
#RUN echo "nameserver 8.8.8.8" >> /etc/resolv.conf
#RUN echo "100.100.2.148 mirrors.cloud.aliyuncs.com" >> /etc/hosts
RUN apt-get update && apt-get -y upgrade
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends apt-utils
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends libmariadb-dev
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends libmysqlclient-dev
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends libmysql++-dev
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends build-essential
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends flex
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends g++
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends python
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends python3
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends fp-compiler
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends mono-devel
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends busybox
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends dos2unix
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends openjdk-17-jdk
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends subversion
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends wget
RUN apt-get -y install sqlite3
RUN useradd -m -u 1536 judge
RUN cd /home/judge/ && \
wget dl.hustoj.com/hustoj.tar.gz && \
tar xzf hustoj.tar.gz
#Github update
#RUN svn up /home/judge/src
RUN cd /home/judge/src/core/ && bash make.sh
# for more compilers, VMs and runtimes , remove # and run "docker build -t hustoj ."
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends ruby
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends gobjc
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends clang
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends guile-3.0
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends lua5.3
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends nodejs
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends golang
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends sqlite3
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends gfortran
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends octave
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends gnucobol
#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends r-base
# Scratch3 judge need these lines
#RUN wget -c http://dl.hustoj.com/scratch-run_0.1.5_linux_amd64.zip
#RUN apt-get install unzip
#RUN unzip scratch-run_0.1.5_linux_amd64.zip
#RUN mv scratch-run /usr/bin
#RUN chmod +x /usr/bin/scratch-run
#RUN apt-get update
# install debian package of similarity-tester
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends similarity-tester
RUN cp /usr/bin/sim_c++ /usr/bin/sim_cc
# make Chinese Character works in Docker
RUN apt-get install -y locales locales-all
RUN locale-gen zh_CN.UTF-8 && dpkg-reconfigure locales && /usr/sbin/update-locale LANG=zh_CN.UTF-8
ENV LANG zh_CN.UTF-8
ENV LANGUAGE zh_CN:zh
ENV LC_ALL zh_CN.UTF-8
# override endl not to flush the io buffer
RUN echo "#ifndef HUSTOJ">>`find /usr/include/c++/ -name iostream`
RUN echo "#define HUSTOJ">>`find /usr/include/c++/ -name iostream`
RUN echo "std::ostream& endl(std::ostream& s) {">>`find /usr/include/c++/ -name iostream`
RUN echo "s<<'\\\\n'; ">>`find /usr/include/c++/ -name iostream`
RUN echo "return s; ">>`find /usr/include/c++/ -name iostream`
RUN echo "}">>`find /usr/include/c++/ -name iostream`
RUN echo "#endif">>`find /usr/include/c++/ -name iostream`