generated from bitcoincore-dev/org-builder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.alpine
198 lines (174 loc) · 6.73 KB
/
Dockerfile.alpine
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
ARG RUBY_VERSION=2.5.8
ARG ALPINE_VERSION=alpine3.13
FROM ruby:${RUBY_VERSION}-${ALPINE_VERSION} as base
ARG YOUR_REPO=bitcoincore.org
ARG YOUR_FORK=bitcoincore-dev
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ARG HOME=${HOME}
ARG PWD=${PWD}
ARG SITE=${SITE}
ARG ALPINE_VERSION=${ALPINE_VERSION}
ARG GIT_USER_NAME=${GIT_USER_NAME}
ARG GIT_USER_EMAIL=${GIT_USER_EMAIL}
ARG GIT_SERVER=${GIT_SERVER}
ARG GIT_PROFILE=${GIT_PROFILE}
ARG GIT_BRANCH=${GIT_BRANCH}
ARG GIT_HASH=${GIT_HASH}
ARG GIT_REPO_ORIGIN=${GIT_REPO_ORIGIN}
ARG GIT_REPO_NAME=${GIT_REPO_NAME}
ARG GIT_REPO_PATH=${GIT_REPO_PATH}
ARG NOCACHE=${NOCACHE}
ARG VERBOSE=${VERBOSE}
ARG PUBLIC_PORT=${PUBLIC_PORT}
ENV HOME=${HOME}
ENV PWD=${PWD}
ENV SITE=${SITE}
ENV ALPINE_VERSION=${ALPINE_VERSION}
ENV GIT_USER_NAME=${GIT_USER_NAME}
ENV GIT_USER_EMAIL=${GIT_USER_EMAIL}
ENV GIT_SERVER=${GIT_SERVER}
ENV GIT_PROFILE=${GIT_PROFILE}
ENV GIT_BRANCH=${GIT_BRANCH}
ENV GIT_HASH=${GIT_HASH}
ENV GIT_REPO_ORIGIN=${GIT_REPO_ORIGIN}
ENV GIT_REPO_NAME=${GIT_REPO_NAME}
ENV GIT_REPO_PATH=${GIT_REPO_PATH}
ENV NOCACHE=${NOCACHE}
ENV VERBOSE=${VERBOSE}
ENV PUBLIC_PORT=${PUBLIC_PORT}
RUN apk --update add ${NOCACHE} --virtual build_deps build-base ruby-dev libc-dev linux-headers
RUN apk add ${NOCACHE} git vim alpine-sdk build-base libc-dev linux-headers \
bash bash-completion sudo su-exec libatomic readline readline-dev \
libxml2 libxml2-dev ncurses-terminfo-base ncurses-terminfo \
libxslt libxslt-dev zlib-dev zlib ruby ruby-dev yaml yaml-dev \
libffi-dev nodejs ruby-io-console ruby-irb ruby-json ruby-rake ruby-dev build-base \
libxml2-dev libxslt-dev pcre-dev libffi-dev \
mariadb-dev postgresql-dev
RUN apk add ${NOCACHE} build-base
RUN apk add --update ruby-nokogiri
FROM base as install-gems
RUN gem update --system
#RUN gem install bundler -v 1.17.3
#RUN gem install bundler -v 2.1.4
RUN gem install bundler
RUN gem update bundler
RUN gem install jekyll
#RUN curl https://raw.githubusercontent.com/bitcoincore-dev/bitcoincore.org/master/Gemfile -o gemfile.temp
#RUN temp=$(<gemfile.temp) && modified="${temp//2.5.5/2.5.8}" && echo $modified > bitcoincore.org.gemfile
#RUN cat bitcoincore.org.gemfile
COPY bitcoincore.org.gemfile .
RUN bundle install --gemfile=bitcoincore.org.gemfile
RUN gem install faraday>=1.7.2
RUN echo 'gem: --no-document' >> .gemrc
RUN echo 'verbose: true' >> .gemrc
RUN echo 'benchmark: false' >> .gemrc
RUN echo 'backtrace: true' >> .gemrc
RUN bundle config --global jobs `expr $(nproc)`
RUN gem install github-pages:202
RUN gem install html-proofer:3.14.1
RUN gem install activesupport:4.2.11.1
RUN gem install github-pages-health-check:1.16.1
RUN gem install jekyll:3.8.5
RUN gem install jekyll-avatar:0.6.0
RUN gem install jekyll-feed:0.11.0
RUN gem install jekyll-github-metadata:2.12.1
RUN gem install jekyll-mentions:1.4.1
RUN gem install jekyll-optional-front-matter:0.3.0
RUN gem install jekyll-readme-index:0.2.0
RUN gem install jekyll-redirect-from:0.14.0
RUN gem install jekyll-relative-links:0.6.0
RUN gem install jekyll-remote-theme:0.4.0
RUN gem install jekyll-seo-tag:2.5.0
RUN gem install jekyll-sitemap:1.2.0
RUN gem install jekyll-swiss:0.4.0
RUN gem install jekyll-theme-architect:0.1.1
RUN gem install jekyll-theme-cayman:0.1.1
RUN gem install jekyll-theme-dinky:0.1.1
RUN gem install jekyll-theme-hacker:0.1.1
RUN gem install jekyll-theme-leap-day:0.1.1
RUN gem install jekyll-theme-merlot:0.1.1
RUN gem install jekyll-theme-midnight:0.1.1
RUN gem install jekyll-theme-minimal:0.1.1
RUN gem install jekyll-theme-modernist:0.1.1
RUN gem install jekyll-theme-primer:0.5.3
RUN gem install jekyll-theme-slate:0.1.1
RUN gem install jekyll-theme-tactile:0.1.1
RUN gem install jekyll-theme-time-machine:0.1.1
RUN gem install jekyll-titles-from-headings:0.5.1
RUN gem install jemoji:0.10.2
RUN gem install kramdown:1.17.0
RUN gem install liquid:4.0.0
RUN gem install listen:3.1.5
RUN gem install minima:2.5.0
RUN gem install nokogiri:1.10.5
RUN gem install rouge:3.11.0
RUN gem install addressable:2.7.0
RUN gem install typhoeus:1.3.1
RUN gem install yell:2.2.0
RUN gem install minitest:5.13.0
RUN gem install tzinfo:1.2.5
RUN gem install dnsruby:1.61.3
RUN gem install octokit:4.14.0
RUN gem install public_suffix:3.1.1
RUN gem install html-pipeline:2.12.2
RUN gem install rubyzip:2.0.0
RUN gem install rb-fsevent:0.10.3
RUN gem install rb-inotify:0.10.0
RUN gem install ruby_dep:1.5.0
RUN gem install unicode-display_width:1.6.0
RUN gem install concurrent-ruby:1.1.5
RUN gem install ruby-enum:0.7.2
RUN gem install ffi:1.11.3
RUN gem install faraday:0.17.0
RUN gem install html-proofer
RUN gem install parallel:1.19.1
RUN gem install rainbow:3.0.0
RUN gem install em-websocket:0.5.1
RUN gem install ethon:0.12.0
RUN gem install http_parser.rb:0.6.0
RUN gem install execjs:2.7.0
RUN bundle config list
FROM install-gems as copy
COPY . /src/gh/pages-gem
FROM copy as bundle
RUN bundle install --gemfile=/src/gh/pages-gem/Gemfile
# one step to exclude .build_deps from docker cache
RUN apk add curl
RUN apk update && apk add ${NOCACHE} --virtual .build_deps \
make \
build-base && \
bundle config local.github-pages /src/gh/pages-gem && \
bundle install --gemfile=/src/gh/pages-gem/Gemfile && \
#curl https://raw.githubusercontent.com/bitcoincore-dev/core-org-builder/master/Gemfile -o core-org-builder.gemfile && \
#curl https://raw.githubusercontent.com/bitcoincore-dev/core-org-builder/master/docs/Gemfile -o core-org-builder.docs.gemfile && \
#curl https://raw.githubusercontent.com/bitcoincore-dev/bitcoincore.org/master/Gemfile -o org-bitcoincore.gemfile && \
#bundle install --gemfile=core-org-builder.gemfile && \
#bundle install --gemfile=core-org-builder.docs.gemfile && \
#bundle install --gemfile=org-bitcoincore.gemfile && \
echo
RUN rm -rf /usr/lib/ruby/gems/*/cache/*.gem
RUN rm -rf /root/src /tmp/* /usr/share/man /var/cache/apk/*
RUN apk del build-base zlib-dev ruby-dev readline-dev yaml-dev libffi-dev libxml2-dev
RUN apk search --update
FROM bundle as run
WORKDIR /src/site
#REF: docs/setting-up-your-environment.md
ARG PREVIEW_LANGS=en
## Fast preview, takes less than 30 seconds
#ENV ENABLED_PLUGINS=""
ENV ENABLED_LANGS="${PREVIEW_LANGS}"
## Fast build and tests, takes less than 50 seconds
## Some tests may fail in fast mode; use -i to continue despite them
#ENV ENABLED_PLUGINS=""
ENV ENABLED_LANGS="${PREVIEW_LANGS}"
ENV PUBLIC_PORT=${PUBLIC_PORT}
## Slower (but still pretty fast) build and test
ENV ENABLED_PLUGINS="events autocrossref"
ENV ENABLED_LANGS="${PREVIEW_LANGS}"
#CMD ["bundle","install","--user" ,"--system", "--gemfile=Gemfile"]
CMD ["bundle","install"]
#CMD ["bundle","install","--verbose"]
CMD ["bundle", "exec", "jekyll", "build", "--profile"]
CMD ["bundle", "exec","jekyll", "serve","--incremental","-H", "0.0.0.0", "-P", "4000","--verbose", "--trace"]