Dockerfile 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. FROM ubuntu:20.04
  2. MAINTAINER Baoshuo <i@baoshuo.ren>
  3. LABEL org.opencontainers.image.source=https://github.com/UniversalOJ/UOJ-System
  4. LABEL org.opencontainers.image.description="UOJ Web"
  5. LABEL org.opencontainers.image.licenses=MIT
  6. ARG CLONE_ADDFLAG
  7. ENV DEBIAN_FRONTEND=noninteractive
  8. COPY v8js.zip /tmp/pear/download/
  9. RUN dpkg -s gnupg 2>/dev/null || (apt-get update && apt-get install -y gnupg) &&\
  10. echo "deb http://ppa.launchpad.net/stesie/libv8/ubuntu bionic main" | tee /etc/apt/sources.list.d/stesie-libv8.list && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D858A0DF &&\
  11. apt-get update && apt-get install -y git vim ntp zip unzip curl wget apache2 libapache2-mod-xsendfile libapache2-mod-php php php-dev php-pear php-zip php-mysql php-mbstring php-gd php-intl php-xsl g++ make re2c libv8-7.5-dev libyaml-dev &&\
  12. yes | pecl install yaml && export OJ_PUSHD=`pwd` && cd /tmp/pear/download &&\
  13. unzip v8js.zip && cd v8js &&\
  14. phpize && ./configure --with-php-config=/usr/bin/php-config --with-v8js=/opt/libv8-7.5 && make install && cd $OJ_PUSHD && unset OJ_PUSHD
  15. ADD . /opt/uoj
  16. WORKDIR /opt/uoj
  17. # Install environment and set startup script
  18. RUN sh web/install.sh -p && echo "\
  19. #!/bin/sh\n\
  20. if [ ! -f \"/var/uoj_data/.UOJSetupDone\" ]; then\n\
  21. cd /opt/uoj/web && sh install.sh -i\n\
  22. fi\n\
  23. service ntp start\n\
  24. service apache2 start\n\
  25. exec bash\n" >/opt/up && chmod +x /opt/up
  26. ENV LANG=C.UTF-8 TZ=Asia/Shanghai
  27. EXPOSE 80
  28. CMD /opt/up