Skip to content

Instantly share code, notes, and snippets.

@icy
Created June 28, 2018 07:56
Show Gist options
  • Select an option

  • Save icy/2b79828c38270815d4774cd0b2d7fb69 to your computer and use it in GitHub Desktop.

Select an option

Save icy/2b79828c38270815d4774cd0b2d7fb69 to your computer and use it in GitHub Desktop.
Dockerfile.demo-proxy.sh
###############################################################
# Dockerfile generated by Bocker-v1.3. Do not edit this file. #
###############################################################
FROM ubuntu:16.04
MAINTAINER Anh K. Huynh <kyanh@theslinux.org>
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Here is from `__ed_before_ship` method. You may need your own
# custom one to advance the base image when it doesn't have Bash.
#
# The default `__ed_before_ship` method is to print this message.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Bocker method => __ed_ship
# * The output is /bocker.sh in the result image.
# * List of methods:
# - ed_apt_clean
# - ed_apt_install
# - ed_apt_purge
# - ed_apt_remove
#
# | set -eux
# | if [[ -f /bocker.sh ]]; then source /bocker.sh; fi
# | ed_apt_clean ()
# | {
# | rm -fv /var/cache/apt/*.bin;
# | rm -fv /var/cache/apt/archives/*.*;
# | rm -fv /var/lib/apt/lists/*.*;
# | apt-get autoclean
# | }
# | ed_apt_install ()
# | {
# | apt-get update;
# | DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends $@
# | }
# | ed_apt_purge ()
# | {
# | apt-get purge -y --auto-remove $@;
# | ed_apt_clean
# | }
# | ed_apt_remove ()
# | {
# | DEBIAN_FRONTEND=noninteractive apt-get remove -y $@
# | }
# | echo '#!/bin/bash' > /bocker.sh
# | echo '# This file is generated by Bocker.' >> /bocker.sh
# | declare -f >> /bocker.sh
# | echo 'if [[ -n "$@" ]]; then $@; fi; ' >> /bocker.sh
# | chmod 755 /bocker.sh
#
RUN echo \
c2V0IC1ldXgKaWYgW1sgLWYgL2JvY2tlci5zaCBdXTsgdGhlbiBzb3VyY2UgL2JvY2tlci5\
zaDsgZmkKZWRfYXB0X2NsZWFuICgpIAp7IAogICAgcm0gLWZ2IC92YXIvY2FjaGUvYXB0Ly\
ouYmluOwogICAgcm0gLWZ2IC92YXIvY2FjaGUvYXB0L2FyY2hpdmVzLyouKjsKICAgIHJtI\
C1mdiAvdmFyL2xpYi9hcHQvbGlzdHMvKi4qOwogICAgYXB0LWdldCBhdXRvY2xlYW4KfQpl\
ZF9hcHRfaW5zdGFsbCAoKSAKeyAKICAgIGFwdC1nZXQgdXBkYXRlOwogICAgREVCSUFOX0Z\
ST05URU5EPW5vbmludGVyYWN0aXZlIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbG\
wtcmVjb21tZW5kcyAkQAp9CmVkX2FwdF9wdXJnZSAoKSAKeyAKICAgIGFwdC1nZXQgcHVyZ\
2UgLXkgLS1hdXRvLXJlbW92ZSAkQDsKICAgIGVkX2FwdF9jbGVhbgp9CmVkX2FwdF9yZW1v\
dmUgKCkgCnsgCiAgICBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUgYXB0LWdldCB\
yZW1vdmUgLXkgJEAKfQplY2hvICcjIS9iaW4vYmFzaCcgPiAvYm9ja2VyLnNoCmVjaG8gJy\
MgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBCb2NrZXIuJyA+PiAvYm9ja2VyLnNoCmRlY\
2xhcmUgLWYgPj4gL2JvY2tlci5zaAplY2hvICdpZiBbWyAtbiAiJEAiIF1dOyB0aGVuICRA\
OyBmaTsgJyA+PiAvYm9ja2VyLnNoCmNobW9kIDc1NSAvYm9ja2VyLnNoCg==\
| base64 -d | bash
# Bocker method => ed_demo_proxy_install
#
# | set -eux
# | if [[ -f /bocker.sh ]]; then source /bocker.sh; fi
# | ed_demo_proxy_install ()
# | {
# | ed_apt_install nginx-extras;
# | ed_apt_clean
# | }
# | ed_demo_proxy_install
#
RUN echo \
c2V0IC1ldXgKaWYgW1sgLWYgL2JvY2tlci5zaCBdXTsgdGhlbiBzb3VyY2UgL2JvY2tlci5\
zaDsgZmkKZWRfZGVtb19wcm94eV9pbnN0YWxsICgpIAp7IAogICAgZWRfYXB0X2luc3RhbG\
wgbmdpbngtZXh0cmFzOwogICAgZWRfYXB0X2NsZWFuCn0KZWRfZGVtb19wcm94eV9pbnN0Y\
WxsCg==\
| base64 -d | bash
# Bocker method => __ed_ship
# * The output is /bocker.sh in the result image.
# * List of methods:
# - ed_demo_proxy_config
# - ed_demo_proxy_start_daemon
#
# | set -eux
# | if [[ -f /bocker.sh ]]; then source /bocker.sh; fi
# | ed_demo_proxy_config ()
# | {
# | rm -fv /etc/nginx/sites-enabled/default || true;
# | PROXY_TO="${PROXY_TO:-http://localhost:7777}";
# | PROXY_NAME="${PROXY_NAME:-X-My-Demo-Proxy}";
# | cat > /etc/nginx/sites-enabled/demo-proxy.conf <<EOF
# | server {
# | listen 80 default_server;
# | root /var/www/html/;
# | access_log /dev/null;
# | location / {
# | proxy_set_header Host \$host;
# | proxy_pass ${PROXY_TO};
# | # add_header "X-Proxied-By" "${PROXY_NAME}" always;
# | more_set_headers "X-Proxied-By: ${PROXY_NAME}";
# | }
# | }
# | EOF
# |
# | }
# | ed_demo_proxy_start_daemon ()
# | {
# | ed_demo_proxy_config;
# | /usr/sbin/nginx -t && exec /usr/sbin/nginx -g "daemon off;"
# | }
# | echo '#!/bin/bash' > /bocker.sh
# | echo '# This file is generated by Bocker.' >> /bocker.sh
# | declare -f >> /bocker.sh
# | echo 'if [[ -n "$@" ]]; then $@; fi; ' >> /bocker.sh
# | chmod 755 /bocker.sh
#
RUN echo \
c2V0IC1ldXgKaWYgW1sgLWYgL2JvY2tlci5zaCBdXTsgdGhlbiBzb3VyY2UgL2JvY2tlci5\
zaDsgZmkKZWRfZGVtb19wcm94eV9jb25maWcgKCkgCnsgCiAgICBybSAtZnYgL2V0Yy9uZ2\
lueC9zaXRlcy1lbmFibGVkL2RlZmF1bHQgfHwgdHJ1ZTsKICAgIFBST1hZX1RPPSIke1BST\
1hZX1RPOi1odHRwOi8vbG9jYWxob3N0Ojc3Nzd9IjsKICAgIFBST1hZX05BTUU9IiR7UFJP\
WFlfTkFNRTotWC1NeS1EZW1vLVByb3h5fSI7CiAgICBjYXQgPiAvZXRjL25naW54L3NpdGV\
zLWVuYWJsZWQvZGVtby1wcm94eS5jb25mICA8PEVPRgogIHNlcnZlciB7CiAgICBsaXN0ZW\
4gODAgZGVmYXVsdF9zZXJ2ZXI7CiAgICByb290ICAgICAgICAvdmFyL3d3dy9odG1sLzsKI\
CAgIGFjY2Vzc19sb2cgIC9kZXYvbnVsbDsKICAgIGxvY2F0aW9uIC8gewogICAgICBwcm94\
eV9zZXRfaGVhZGVyIEhvc3QgXCRob3N0OwogICAgICBwcm94eV9wYXNzICAgICAgICAgICA\
gJHtQUk9YWV9UT307CiAgICAgICMgYWRkX2hlYWRlciAgICAgICAgICAiWC1Qcm94aWVkLU\
J5IiAiJHtQUk9YWV9OQU1FfSIgYWx3YXlzOwogICAgICBtb3JlX3NldF9oZWFkZXJzICAgI\
CAgIlgtUHJveGllZC1CeTogJHtQUk9YWV9OQU1FfSI7CiAgICB9CiAgfQpFT0YKCn0KZWRf\
ZGVtb19wcm94eV9zdGFydF9kYWVtb24gKCkgCnsgCiAgICBlZF9kZW1vX3Byb3h5X2NvbmZ\
pZzsKICAgIC91c3Ivc2Jpbi9uZ2lueCAtdCAmJiBleGVjIC91c3Ivc2Jpbi9uZ2lueCAtZy\
AiZGFlbW9uIG9mZjsiCn0KZWNobyAnIyEvYmluL2Jhc2gnID4gL2JvY2tlci5zaAplY2hvI\
CcjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgQm9ja2VyLicgPj4gL2JvY2tlci5zaApk\
ZWNsYXJlIC1mID4+IC9ib2NrZXIuc2gKZWNobyAnaWYgW1sgLW4gIiRAIiBdXTsgdGhlbiA\
kQDsgZmk7ICcgPj4gL2JvY2tlci5zaApjaG1vZCA3NTUgL2JvY2tlci5zaAo=\
| base64 -d | bash
ENV PROXY_NAME My-Demo-Proxy
ENV PROXY_TO http://localhost:7777
EXPOSE 80
CMD ["/bocker.sh", "ed_demo_proxy_start_daemon"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment