- Transform into hilariously offensive Docker-hosted blame portal - Add Apache container with custom 404 blaming Dustin - Implement MySQL database tracking all of Dustin's eternal sins - Create interactive features: live incident feed, apology generator, nuclear option - Add ridiculous animations, sound effects, and CRT-style UI - Include CGI script for extra blame generation - Set up docker-compose with phpMyAdmin for database admin - Maximum crassness with zero restraint - everything is Dustin's fault
43 lines
2.7 KiB
Docker
43 lines
2.7 KiB
Docker
FROM httpd:2.4-alpine
|
|
|
|
# Install some fun utilities (because why not?)
|
|
RUN apk add --no-cache \
|
|
fortune \
|
|
figlet \
|
|
&& echo "#!/bin/sh" > /usr/local/bin/blame-dustin \
|
|
&& echo 'echo "This is Dustin'\''s fault. Obviously."' >> /usr/local/bin/blame-dustin \
|
|
&& chmod +x /usr/local/bin/blame-dustin
|
|
|
|
# Create a custom error page that blames Dustin for everything
|
|
RUN echo '<!DOCTYPE html><html><head><title>Error - Dustin'\''s Fault</title><style>body{font-family: monospace;background:#000;color:#0f0;margin:40px}h1{color:#f00}pre{color:#ff0}</style></head><body><h1>ERROR 404 - PAGE NOT FOUND</h1><p>This page doesn'\''t exist. You know who to blame.</p><pre>' > /usr/local/apache2/htdocs/404.html \
|
|
&& echo " _____ _ _ _ " >> /usr/local/apache2/htdocs/404.html \
|
|
&& echo " | __ \ | | (_) | | " >> /usr/local/apache2/htdocs/404.html \
|
|
&& echo " | | | | ___| |_ _ _ __ | |_ " >> /usr/local/apache2/htdocs/404.html \
|
|
&& echo " | | | |/ _ \ __| | '_ \| __|" >> /usr/local/apache2/htdocs/404.html \
|
|
&& echo " | |__| | __/ |_| | | | | |_ " >> /usr/local/apache2/htdocs/404.html \
|
|
&& echo " |_____/ \___|\__|_|_| |_|\__|" >> /usr/local/apache2/htdocs/404.html \
|
|
&& echo " " >> /usr/local/apache2/htdocs/404.html \
|
|
&& echo " It's Dustin's fault. Obviously." >> /usr/local/apache2/htdocs/404.html \
|
|
&& echo '</pre><p><a href="/" style="color:#0ff">Go back to blaming Dustin properly</a></p></body></html>' >> /usr/local/apache2/htdocs/404.html
|
|
|
|
# Copy our website files
|
|
COPY index.html /usr/local/apache2/htdocs/
|
|
COPY cgi-bin/blame-dustin.cgi /usr/local/apache2/cgi-bin/
|
|
|
|
# Enable CGI and set up custom error pages
|
|
RUN sed -i '/LoadModule cgid_module/s/^#//g' /usr/local/apache2/conf/httpd.conf \
|
|
&& sed -i '/ScriptAlias \/cgi-bin\//s/^#//g' /usr/local/apache2/conf/httpd.conf \
|
|
&& sed -i '/<Directory "\/usr\/local\/apache2\/cgi-bin">/,/<\/Directory>/s/^#//g' /usr/local/apache2/conf/httpd.conf \
|
|
&& sed -i 's/Options Indexes FollowSymLinks/Options Indexes FollowSymLinks ExecCGI/g' /usr/local/apache2/conf/httpd.conf \
|
|
&& echo 'ErrorDocument 404 /404.html' >> /usr/local/apache2/conf/httpd.conf \
|
|
&& echo 'ErrorDocument 500 "<html><body><h1>500 Internal Server Error</h1><p>Dustin fucked up the server. Again.</p></body></html>"' >> /usr/local/apache2/conf/httpd.conf \
|
|
&& echo 'ErrorDocument 403 "<html><body><h1>403 Forbidden</h1><p>Dustin says you can'\''t see this. What an asshole.</p></body></html>"' >> /usr/local/apache2/conf/httpd.conf
|
|
|
|
# Make sure CGI scripts are executable
|
|
RUN chmod +x /usr/local/apache2/cgi-bin/blame-dustin.cgi
|
|
|
|
# Expose port 80
|
|
EXPOSE 80
|
|
|
|
# Start Apache in foreground
|
|
CMD ["httpd-foreground"] |