-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile.in
93 lines (78 loc) · 3.97 KB
/
Dockerfile.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
{# #############################################################################
# This file compiles to Dockerfile.
############################################################################ -#}
#
# This file compiled from Dockerfile.in.
#
{% set current_dockerfile_config = dockerfile.main -%}
FROM {{ current_dockerfile_config.base_image }}
#
# 2/9/21 Add a VERSION file as part of preparing for future scripts
#
ADD VERSION .
{# #############################################################################
# Core configuration of the environment. We should always include these.
############################################################################ -#}
{% include 'base/dockerfile/environment.Dockerfile' %}
{% include 'base/dockerfile/apt_get_essentials.Dockerfile' %}
{# #############################################################################
# Different runtimes we may want to include.
#
# {% include 'base/dockerfile/python.Dockerfile' %}
# {% include 'base/dockerfile/ruby.Dockerfile' %}
# {% include 'base/dockerfile/node.Dockerfile' %}
############################################################################ -#}
{% include 'base/dockerfile/python.Dockerfile' %}
{% include 'base/dockerfile/ruby.Dockerfile' %}
{% include 'base/dockerfile/node.Dockerfile' %}
################################################################################
# Additional packages we need.
################################################################################
RUN apt-get -qq clean && \
apt-get -qq update && \
apt-get -qq install -y --no-install-recommends \
gawk \
rsync \
sshpass \
&& \
apt-get -qq clean
################################################################################
# Install Python packages into temp directory, so they are in cache.
################################################################################
COPY docker_jekyll_site/requirements3.txt /docker_jekyll_site_temp/requirements3.txt
RUN dos2unix /docker_jekyll_site_temp/requirements3.txt && \
pip install -r /docker_jekyll_site_temp/requirements3.txt
################################################################################
# Install Ruby gems into temp directory, so they are in cache.
################################################################################
COPY docker_jekyll_site/Gemfile /docker_jekyll_site_temp/Gemfile
COPY docker_jekyll_site/Gemfile.lock /docker_jekyll_site_temp/Gemfile.lock
RUN dos2unix /docker_jekyll_site_temp/Gemfile && \
dos2unix /docker_jekyll_site_temp/Gemfile.lock && \
cd /docker_jekyll_site_temp && \
bundle install
################################################################################
# Install Node modules into temp directory, so they are in cache.
################################################################################
COPY docker_jekyll_site/npm-shrinkwrap.json /docker_jekyll_site_temp/npm-shrinkwrap.json
COPY docker_jekyll_site/package.json /docker_jekyll_site_temp/package.json
RUN dos2unix /docker_jekyll_site_temp/npm-shrinkwrap.json && \
dos2unix /docker_jekyll_site_temp/package.json && \
cd /docker_jekyll_site_temp && \
npm install
################################################################################
# Expose any ports or persistent volumes.
################################################################################
# Port where we serve the files
EXPOSE 4000
# Volume where the site will persist
VOLUME ["/docker_jekyll_site/site"]
################################################################################
# Set up our entrypoint script.
################################################################################
COPY docker_jekyll_site/docker_jekyll_site_entrypoint.sh /docker_jekyll_site_entrypoint.sh
RUN dos2unix /docker_jekyll_site_entrypoint.sh && \
chmod +x /docker_jekyll_site_entrypoint.sh
# Run the wrapper script
CMD ["/docker_jekyll_site_entrypoint.sh"]
{# This comment gives us a newline at the end of the generated file #}