buildall.sh 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/bash
  2. read -r -d '' END << EOM
  3. RUN apt-get clean autoclean
  4. RUN apt-get autoremove --yes
  5. RUN rm -rf /var/lib/{apt,dpkg,cache,log}/
  6. RUN useradd -m user
  7. USER user
  8. WORKDIR /home/user
  9. EOM
  10. cd langs
  11. for dir in */
  12. do
  13. if [ -f "$dir/debian.ver" ]; then
  14. debver="$(cat $dir/debian.ver)"
  15. else
  16. debver="latest"
  17. fi
  18. dir="${dir%*/}"
  19. if podman image exists "$dir-runner"; then
  20. continue
  21. fi
  22. if [ -f "$dir/Dockerfile.user" ]; then
  23. template_user="$(cat $dir/Dockerfile.user)"
  24. else
  25. template_user=""
  26. fi
  27. template="$(cat $dir/Dockerfile)"
  28. run_sh="$(cat $dir/run.sh)"
  29. echo "#!/usr/bin/bash
  30. if [ \"\$1\" = \"--init\" ]; then
  31. bash -
  32. fi
  33. $run_sh
  34. " > "Run$dir.sh"
  35. echo "FROM debian:$debver
  36. RUN apt update -y
  37. $template
  38. COPY Run$dir.sh /usr/bin/run
  39. RUN chmod +x /usr/bin/run
  40. RUN chmod 705 /usr/bin/run
  41. $END
  42. $template_user
  43. ENTRYPOINT [\"/usr/bin/run\"]" > Dockerfile
  44. podman build -t "$dir-runner" .
  45. rm Dockerfile
  46. rm "Run$dir.sh"
  47. done
  48. cd ..