Dockerfile 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. FROM httpd:2.4.43-alpine
  2. RUN \
  3. apk add --upgrade --update-cache curl apr-util && \
  4. mkdir -p /var/www/html && \
  5. mkdir -p /var/www/conf && \
  6. \
  7. # add images
  8. for i in 0 1 2 3 4 5 6 7 8 9; do \
  9. while ! curl -m 2 -L -o "/var/www/html/$i.jpg" "https://picsum.photos/1280/960"; do \
  10. sleep 1; \
  11. done \
  12. done && \
  13. \
  14. # add transparent png
  15. while ! curl -m 2 -o /var/www/html/transparent-test.png "https://www.w3.org/Graphics/PNG/alphatest.png"; do \
  16. sleep 1; \
  17. done && \
  18. \
  19. # add fonts
  20. for font in notoserif/NotoSerif-Regular.ttf unlock/Unlock-Regular.ttf blackandwhitepicture/BlackAndWhitePicture-Regular.ttf indieflower/IndieFlower-Regular.ttf; do \
  21. while ! curl -m 10 -L -o "/var/www/html/$(basename $font)" "https://cdn.jsdelivr.net/gh/google/fonts/ofl/$font"; do \
  22. sleep 1; \
  23. done \
  24. done && \
  25. \
  26. # add video
  27. while ! curl -m 10 -L -o /var/www/html/video.mp4 "https://ik.imagekit.io/demo/sample-video.mp4"; do \
  28. sleep 1; \
  29. done && \
  30. \
  31. # add PDF
  32. while ! curl -m 2 -L -o /var/www/html/dummy.pdf "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"; do \
  33. sleep 1; \
  34. done && \
  35. \
  36. # create som inaccessible files for testing
  37. mkdir -p /var/www/html/inaccessible-dir && \
  38. \
  39. while ! curl -m 2 -L -o /var/www/html/inaccessible-image.jpg "https://picsum.photos/1280/960"; do \
  40. sleep 1; \
  41. done && \
  42. \
  43. echo 'Lorem ipsum dolor sit amet' > /var/www/html/inaccessible-text-file.txt && \
  44. > /var/www/html/inaccessible-file && \
  45. \
  46. # set up apache
  47. echo >> /usr/local/apache2/conf/httpd.conf && \
  48. echo 'LoadModule dav_module modules/mod_dav.so' >> /usr/local/apache2/conf/httpd.conf && \
  49. echo 'LoadModule dav_fs_module modules/mod_dav_fs.so' >> /usr/local/apache2/conf/httpd.conf && \
  50. echo 'LoadModule dav_lock_module modules/mod_dav_lock.so' >> /usr/local/apache2/conf/httpd.conf && \
  51. echo >> /usr/local/apache2/conf/httpd.conf && \
  52. echo 'Include /var/www/conf/*.conf' >> /usr/local/apache2/conf/httpd.conf && \
  53. \
  54. echo 'DavLockDB "/usr/local/apache2/var/DavLock"' >> /var/www/conf/location.conf && \
  55. echo >> /var/www/conf/location.conf && \
  56. echo '<Directory /var/www>' >> /var/www/conf/location.conf && \
  57. echo ' Dav On' >> /var/www/conf/location.conf && \
  58. echo ' Require all granted' >> /var/www/conf/location.conf && \
  59. echo '</Directory>' >> /var/www/conf/location.conf && \
  60. \
  61. mkdir -p /usr/local/apache2/var && \
  62. chown -R daemon:daemon /usr/local/apache2/var && \
  63. chmod -R 755 /usr/local/apache2/var && \
  64. \
  65. # set ownership properly
  66. chown -R daemon:daemon /var/www && \
  67. chown nobody:nobody /var/www/html/inaccessible* && \
  68. chmod 700 /var/www/html/inaccessible* && \
  69. \
  70. # clean up
  71. apk del curl;
  72. EXPOSE 80