Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
1bd2a0f
testrail version updated
apkraft Jun 8, 2020
a43d936
Merge branch 'master' of https://github.com/foliant-docs/docker
Jun 9, 2020
149f82d
flatten and testrail versions updated
apkraft Jun 9, 2020
aa35da8
Merge branch 'master' of https://github.com/foliant-docs/docker
Jun 9, 2020
4bde9ac
testrail version updated
apkraft Jun 10, 2020
43cfeab
Merge branch 'master' of https://github.com/foliant-docs/docker
Jun 10, 2020
99479f6
Используем Puppeteer 3.3.0.
artlomov Jun 11, 2020
302928a
update confluence version
Jun 16, 2020
c72d9fa
update includes version
Jul 9, 2020
0e92de3
update link to slate gemfile in dockerfile-full
Jul 9, 2020
e50c83a
update includes
Jul 9, 2020
453e5e4
multilinetables version updated
apkraft Jul 9, 2020
4ce7567
update confluence version
Jul 14, 2020
c88c552
Update versions of Ubuntu, Pandoc, and Python packages.
artlomov Jul 22, 2020
f9bbcc4
Require Node 14.x, Puppeteer 5.2.1.
artlomov Jul 22, 2020
caf7af1
Temporarily disable foliantcontrib.project_graph installation.
artlomov Jul 22, 2020
1328668
Use Node 12.x.
artlomov Jul 22, 2020
4737dd6
Require Includes 1.1.12 for the full image.
artlomov Jul 29, 2020
5539923
Require Includes 1.1.13 for the full image.
artlomov Jul 29, 2020
c2f5861
Require EscapeCode 1.0.4 for the full image.
artlomov Jul 30, 2020
b561921
add mssql and mysql into image
Aug 21, 2020
7ca52f2
update dbdoc version
Aug 21, 2020
6a8c1da
update confluence version
Aug 21, 2020
1891005
Require foliantcontrib.reindexer for the full image.
artlomov Aug 22, 2020
3193b56
update swaggerdoc version
Aug 24, 2020
507ce3c
update header_anchors, preprocessor_ext and superlinks versions
Aug 26, 2020
779c09b
Require foliantcontrib.reindexer 1.0.1 for the full image.
artlomov Sep 7, 2020
d544076
Require foliantcontrib.archeme 1.0.3 for the full image.
artlomov Sep 16, 2020
981caf6
update apilinks version
Oct 6, 2020
b65f6ca
update apilinks version
Oct 7, 2020
f35e8d6
update utils.chapters and superlinks versions
Oct 8, 2020
3432439
update graphviz preprocessor version
Oct 14, 2020
b1c9a3c
update confluence version
Oct 16, 2020
43cdeac
update pandoc version
Oct 21, 2020
6716d56
update superlinks and utils.chapters versions
Oct 28, 2020
548cecd
update apilinks version
Nov 2, 2020
c05a108
update plantuml preprocessor version
Nov 12, 2020
353f6ac
update versions customids, preprocessor_ext, add utils
Nov 17, 2020
908a930
update versions: combined_options, anchors, header_anchors
Nov 20, 2020
2413573
update superlinks version
Nov 27, 2020
e496c86
replace version updated
apkraft Dec 3, 2020
9e483e8
update templateparser version
Dec 4, 2020
9df99d3
update apilinks and dbdoc versions
Jan 25, 2021
98edd19
update plantuml version
Feb 1, 2021
2957418
update apilinks version
Feb 3, 2021
3540147
update confluence version
Feb 18, 2021
71a9e8f
update confluence version
Mar 10, 2021
76fa9bf
update versions apilinks, apireferences, header_anchors, add yaml_inc…
Mar 11, 2021
3a2af84
update confluence version
Vanderhoof Apr 1, 2021
9f9774e
update anchors version
Vanderhoof Apr 20, 2021
9195cc0
add downloadfile config extension to requirements
Vanderhoof May 4, 2021
148fb81
update versions: yaml_include, downloadfile, multiproject
Vanderhoof May 7, 2021
8af6333
update dbmldoc version
Vanderhoof May 20, 2021
8f38f38
update plantuml version
Vanderhoof Jul 6, 2021
98c8e7f
update pydbml to 0.4.1
Vanderhoof Jul 13, 2021
e3994d0
update utils and preprocessors versions
Jul 21, 2021
30f049c
update pandoc preprocessor version and meta version
Jul 21, 2021
67d17be
update csvtables version
Jul 22, 2021
cbf278c
remove old utils from full docker image, add bpmn preprocessor to ful…
Vanderhoof Aug 2, 2021
59421f3
add argdown, update dbdoc
Vanderhoof Aug 17, 2021
2cf1813
update ca certs
Oct 4, 2021
23271e6
update versions: confluence, replace, superlinks
Vanderhoof Dec 12, 2021
ccafa55
[packages] freeze mkdocs to version 1.2.3
holamgadol May 5, 2022
74a42c7
[packages] specify versions
holamgadol May 5, 2022
706b425
[packages] specify python packages versions
holamgadol May 5, 2022
83a839c
[format] sort requirements.txt
holamgadol May 5, 2022
608737a
[packages] specify MarkupSafe
holamgadol May 5, 2022
4c2ca14
[packages] update to foliantcontrib.mkdocs == 1.0.13
holamgadol May 6, 2022
0a5efbc
[packages] Update PyYAML due to dependancy alert
holamgadol May 6, 2022
171ee19
[packages] PyYAML to 5.4 due to incompability
holamgadol May 6, 2022
7dfded4
[packages] update foliantcontrib.imgcaptions to 1.0.3 and mkdocs-mate…
holamgadol May 12, 2022
625d747
[packages] add foliantcontrib.checksources
holamgadol May 28, 2022
39d6343
[packages] update foliantcontrib.apireferences to 1.0.3
holamgadol Jun 9, 2022
d2a2aca
[packages] Update foliantcontrib.apireferences to 1.0.4
holamgadol Jun 15, 2022
474c61f
[update] change version source from develop to master branch
holamgadol Jun 21, 2022
4c70ba9
[packages] update foliantcontrib.apireferences to 1.0.5
holamgadol Jun 22, 2022
4cbb3b8
[packages] update foliantcontrib.showcommits to 1.0.3
holamgadol Jun 27, 2022
ca70700
[packages] update foliant init and lxml
holamgadol Aug 15, 2022
27dfc02
add buils scripts for slim, latest and pandoc images
holamgadol Aug 15, 2022
dc7bcd9
Merge pull request #6 from foliant-docs/add-buils-scripts
holamgadol Aug 15, 2022
6a4d4d0
Added README file for foliant-docs/docker
Rainary Aug 30, 2022
6bb1f60
Add README.md for Docker project
Rainary Aug 31, 2022
88ba741
Add README.md for Docker project
Rainary Aug 31, 2022
e987372
Add README.md for Docker project
Rainary Aug 31, 2022
8e1fa5a
Add README.md for Docker project
Rainary Aug 31, 2022
97917c7
Add header
Rainary Sep 11, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/build.log
.idea
35 changes: 31 additions & 4 deletions Dockerfile-full
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ FROM foliant/foliant:pandoc

RUN apt update

RUN apt install --reinstall ca-certificates

COPY ./dependency_files/ /usr/src/app/dependency_files/

# Needed for ImageMagick
Expand All @@ -13,11 +15,36 @@ RUN rm -rf /etc/ImageMagick-6/policy.xml \
# Needed for Puppeteer
RUN apt install -y libasound2

RUN wget -q -O - https://deb.nodesource.com/setup_11.x | bash
RUN wget -q -O - https://deb.nodesource.com/setup_12.x | bash

RUN apt install -y nodejs

RUN npm install puppeteer@2.0.0
RUN npm install puppeteer@5.2.1

# Needed for BPMN preprocessor

RUN npm install -g bpmn-to-image@0.5.1 --unsafe-perm

# Needed for Argdown preprocessor

RUN npm install -g @argdown/cli
RUN npm install -g @argdown/image-export --unsafe-perm

#######################
# Databases for DBDoc #
#######################

# MS SQL Server
RUN apt-get install -y unixodbc-dev
RUN wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN wget -O /etc/apt/sources.list.d/mssql-release.list https://packages.microsoft.com/config/ubuntu/20.04/prod.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17

# MySQL
RUN apt-get install -y mysql-server libmysqlclient-dev

#######################

RUN npm install -g widdershins

Expand All @@ -32,8 +59,8 @@ RUN npm install -g raml2html raml2html-full-markdown-theme

RUN mkdir -p /usr/src/app/dependency_files/slate/ \
&& cd /usr/src/app/dependency_files/slate/ \
&& wget -O ./Gemfile https://raw.githubusercontent.com/slatedocs/slate/master/Gemfile \
&& wget -O ./Gemfile.lock https://raw.githubusercontent.com/slatedocs/slate/master/Gemfile.lock \
&& wget -O ./Gemfile https://raw.githubusercontent.com/slatedocs/slate/main/Gemfile \
&& wget -O ./Gemfile.lock https://raw.githubusercontent.com/slatedocs/slate/main/Gemfile.lock \
&& apt install -y zlib1g-dev ruby-full \
&& gem install bundler \
&& bundle install
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile-pandoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ FROM foliant/foliant

ENV DEBIAN_FRONTEND noninteractive
RUN apt update && apt install -y wget texlive-full librsvg2-bin
RUN wget https://github.com/jgm/pandoc/releases/download/2.9.2/pandoc-2.9.2-1-amd64.deb && dpkg -i pandoc-2.9.2-1-amd64.deb
RUN wget https://github.com/jgm/pandoc/releases/download/2.10/pandoc-2.10-1-amd64.deb && dpkg -i pandoc-2.10-1-amd64.deb
RUN pip3 install foliantcontrib.pandoc
2 changes: 1 addition & 1 deletion Dockerfile-slim
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ubuntu:eoan
FROM ubuntu:focal

LABEL authors="Konstantin Molchanov <moigagoo@live.com>"

Expand Down
78 changes: 78 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Docker
Docker is a project that helps develop, update and publish Docker images for Foliant.

## Overview
There are four Docker images to build different versions of Foliant.
This repo contains Dockerfiles to build each Docker image.
Also,
each Dockerfile has its own build-and-publish script
to publish images to [Docker Hub](https://hub.docker.com/r/foliant/foliant/tags).

## header

* `foliant/foliant:slim` — minimal image of Foliant core with no extensions.
* [Dockerfile-slim](https://github.com/foliant-docs/docker/blob/master/Dockerfile-slim)
* [build_slim.sh](https://github.com/foliant-docs/docker/blob/master/build_slim.sh)

* `foliant/foliant` — the default image with Foliant core and the foliantcontrib.init extension
* [Dockerfile](https://github.com/foliant-docs/docker/blob/master/Dockerfile)
* [build_latest.sh](https://github.com/foliant-docs/docker/blob/master/build_latest.sh)
* `foliant/foliant:pandoc` — the image with foliantcontrib.pandoc and its dependencies:
TexLive and Pandoc for building PDF and DOCX
* [Dockerfile-pandoc](https://github.com/foliant-docs/docker/blob/master/Dockerfile-pandoc)
* [build_pandoc.sh](https://github.com/foliant-docs/docker/blob/master/build_pandoc.sh)
* `foliant/foliant:full` — the full image with all official Foliant extensions and third-party tools required for them to work
* [Dockerfile-full](https://github.com/foliant-docs/docker/blob/master/Dockerfile-full)
* [build_full.sh](https://github.com/foliant-docs/docker/blob/master/build_full.sh)

* [Makefile](https://github.com/foliant-docs/docker/blob/master/Makefile) needed to build Docker images on local computer

## Docker images dependencies

Docker images build with Dockerfiles based on a previous light version in the following order:
> Dockerfile-slim → Dockerfile → Dockerfile-pandoc → Dockerfile-full

It means that if you update `foliant/foliant:slim`, you should update all its dependants after:
`foliant/foliant` then `foliant/foliant:pandoc` then `foliant/foliant:full`. If you want to update `foliant/foliant`,
you should update `foliant/foliant:pandoc` then `foliant/foliant:full` etc.

### Which image to update?

* When [Foliant-core](https://github.com/foliant-docs/foliant) updates:
> update `foliant/foliant:slim` → `foliant/foliant` → `foliant/foliant:pandoc` → `foliant/foliant:full`

* When [foliantcontrib.init](https://github.com/foliant-docs/foliantcontrib.init) updates:
> update `foliant/foliant` → `foliant/foliant:pandoc` → `foliant/foliant:full`

* When [foliantcontrib.pandoc](https://github.com/foliant-docs/foliantcontrib.pandoc) updates:
> update `foliant/foliant:pandoc` → `foliant/foliant:full`

* When any other Foliant extension updates:
> update `foliant/foliant:full` and [requirements.txt](https://github.com/foliant-docs/docker/blob/master/dependency_files/python_packages/requirements.txt)
> from `dependency_files/python_packages/requirements.txt`

## Update procedure
To update Docker-image on Docker Hub, you should:
1. Clone, pull or download this repo on your computer.
2. Update dependencies if needed.
3. Push changes to this repo.
4. Run a script which related to Docker-image you needed:

```bash
# In the project directory

./build_slim.sh # for foliant/foliant:slim
./build_latest.sh # for foliant/foliant
./build_pandoc.sh # for foliant/foliant:pandoc
./build_full.sh # for foliant/foliant:full
```

#### How to tag image (optional)
Scripts set tag for published image automatically. But you can tag the image manually as a script parameter:
```bash
./build_full.sh 1.0.13
```

#### Docker Hub authorization
To push images to the [Foliant project on Docker Hub](https://hub.docker.com/r/foliant/foliant/),
you need an account on Docker Hub with appropriate rights.
2 changes: 1 addition & 1 deletion build_full.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ else
fi

if [ ! $1 ] ; then
FOLIANT_VERSION=`curl https://raw.githubusercontent.com/foliant-docs/foliant/develop/foliant/__init__.py | grep -${grep_option}o "\d+\.\d+\.\d+"`
FOLIANT_VERSION=`curl https://raw.githubusercontent.com/foliant-docs/foliant/master/foliant/__init__.py | grep -${grep_option}o "\d+\.\d+\.\d+"`
else
FOLIANT_VERSION=$1
fi
Expand Down
10 changes: 10 additions & 0 deletions build_latest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash -e


echo "Building and pushing the latest image"

docker pull foliant/foliant:slim
docker login
docker build --no-cache -t foliant/foliant ./ 2>&1 | tee ./build.log
docker push foliant/foliant
docker logout
24 changes: 24 additions & 0 deletions build_pandoc.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash -e

os_type=`uname`

if [ "${os_type}" == 'Darwin' ] ; then
grep_option='E'
else
grep_option='P'
fi

if [ ! $1 ] ; then
FOLIANT_VERSION=`curl https://raw.githubusercontent.com/foliant-docs/foliant/master/foliant/__init__.py | grep -${grep_option}o "\d+\.\d+\.\d+"`
else
FOLIANT_VERSION=$1
fi

echo "Building and pushing the pandoc image for Foliant ${FOLIANT_VERSION}"

docker pull foliant/foliant
docker login
docker build --no-cache -t foliant/foliant:pandoc -t foliant/foliant:${FOLIANT_VERSION}-pandoc -f Dockerfile-pandoc ./ 2>&1 | tee ./build.log
docker push foliant/foliant:pandoc
docker push foliant/foliant:${FOLIANT_VERSION}-pandoc
docker logout
24 changes: 24 additions & 0 deletions build_slim.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash -e

os_type=`uname`

if [ "${os_type}" == 'Darwin' ] ; then
grep_option='E'
else
grep_option='P'
fi

if [ ! $1 ] ; then
FOLIANT_VERSION=`curl https://raw.githubusercontent.com/foliant-docs/foliant/master/foliant/__init__.py | grep -${grep_option}o "\d+\.\d+\.\d+"`
else
FOLIANT_VERSION=$1
fi

echo "Building and pushing the slim image for Foliant ${FOLIANT_VERSION}"

docker pull ubuntu:focal
docker login
docker build --no-cache --build-arg VERSION=${FOLIANT_VERSION} -t foliant/foliant:slim -t foliant/foliant:${FOLIANT_VERSION}-slim -f Dockerfile-slim ./ 2>&1 | tee ./build.log
docker push foliant/foliant:slim
docker push foliant/foliant:${FOLIANT_VERSION}-slim
docker logout
97 changes: 51 additions & 46 deletions dependency_files/python_packages/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,71 +1,76 @@
foliantcontrib.admonitions >= 1.0.0
foliantcontrib.admonitions >= 1.0.1
foliantcontrib.aglio >= 1.0.0
foliantcontrib.alt_structure >= 0.2.0
foliantcontrib.anchors >= 1.0.4
foliantcontrib.apilinks >= 1.1.3
foliantcontrib.archeme >= 1.0.2
foliantcontrib.badges >= 1.0.2
foliantcontrib.alt_structure >= 0.2.1
foliantcontrib.anchors >= 1.0.7
foliantcontrib.apilinks >= 1.2.6
foliantcontrib.apireferences >= 1.0.5
foliantcontrib.archeme >= 1.0.3
foliantcontrib.argdown >= 0.1.1
foliantcontrib.badges >= 1.0.3
foliantcontrib.bindfigma >= 1.0.3
foliantcontrib.bindsympli >= 1.0.13
foliantcontrib.blockdiag >= 1.0.5
foliantcontrib.bpmn >= 1.0.1
foliantcontrib.bump >= 1.0.2
foliantcontrib.csvtables >= 1.0.1
foliantcontrib.customids >= 1.0.6
foliantcontrib.confluence >= 0.6.10
foliantcontrib.dbmldoc >= 0.2.4
foliantcontrib.dbdoc >= 0.1.2
foliantcontrib.checksources >= 1.0.0
foliantcontrib.confluence >= 0.6.20
foliantcontrib.csvtables >= 1.0.2
foliantcontrib.customids >= 1.0.7
foliantcontrib.dbdoc >= 0.1.8
foliantcontrib.dbmldoc >= 0.3.1
foliantcontrib.downloadfile >= 1.0.1
foliantcontrib.elasticsearch >= 1.0.4
foliantcontrib.epsconvert >= 1.0.7
foliantcontrib.escapecode >= 1.0.2
foliantcontrib.escapecode >= 1.0.4
foliantcontrib.flags >= 1.0.2
foliantcontrib.flatten >= 1.0.7
foliantcontrib.glossary >= 1.0.0
foliantcontrib.graphviz >= 1.1.3
foliantcontrib.graphviz >= 1.1.5
foliantcontrib.gupload >= 1.1.5
foliantcontrib.history >= 1.0.8
foliantcontrib.imagemagick >= 1.0.2
foliantcontrib.imgcaptions >= 1.0.2
foliantcontrib.imgcaptions >= 1.0.3
foliantcontrib.imgconvert >= 1.0.0
foliantcontrib.includes >= 1.1.9
foliantcontrib.init >= 1.0.7
foliantcontrib.includes >= 1.1.13
foliantcontrib.init >= 1.0.9
foliantcontrib.macros >= 1.0.4
foliantcontrib.mdtopdf >= 1.0.0
foliantcontrib.mermaid >= 1.0.1
foliantcontrib.meta >= 1.3.2
foliantcontrib.metagraph >= 0.1.2
foliantcontrib.mkdocs >= 1.0.11
foliantcontrib.multilinetables >= 1.2.2
foliantcontrib.multiproject >= 1.0.13
foliantcontrib.mermaid >= 1.0.2
foliantcontrib.meta >= 1.3.3
foliantcontrib.metagraph >= 0.1.3
foliantcontrib.mkdocs >= 1.0.13
foliantcontrib.multilinetables >= 1.2.3
foliantcontrib.multiproject >= 1.0.15
foliantcontrib.notifier >= 1.0.0
foliantcontrib.pandoc >= 1.0.10
foliantcontrib.pgsqldoc >= 1.1.6
foliantcontrib.plantuml >= 1.0.6
foliantcontrib.project_graph >= 1.0.1
foliantcontrib.ramldoc >= 1.0.1
foliantcontrib.pandoc >= 1.1.1
foliantcontrib.pgsqldoc >= 1.1.7
foliantcontrib.plantuml >= 1.0.10
foliantcontrib.ramldoc >= 1.0.2
foliantcontrib.reindexer >= 1.0.1
foliantcontrib.removeexcess >= 1.0.0
foliantcontrib.replace >= 1.0.4
foliantcontrib.replace >= 2.0.0
foliantcontrib.runcommands >= 1.0.1
foliantcontrib.showcommits >= 1.0.2
foliantcontrib.showcommits >= 1.0.3
foliantcontrib.slate >= 1.0.8
foliantcontrib.slugs >= 1.0.1
foliantcontrib.subset >= 1.0.9
foliantcontrib.superlinks >= 1.0.4
foliantcontrib.swaggerdoc >= 1.2.2
foliantcontrib.templateparser >= 1.0.4
foliantcontrib.superlinks >= 1.0.12
foliantcontrib.swaggerdoc >= 1.2.4
foliantcontrib.templateparser >= 1.0.6
foliantcontrib.testcoverage >= 0.1.1
foliantcontrib.testrail >= 1.2.1
foliantcontrib.utils.chapters >= 1.0.2
foliantcontrib.utils.combined_options >= 1.0.9
foliantcontrib.utils.header_anchors >= 1.0.1
foliantcontrib.utils.preprocessor_ext >= 1.0.3
foliantcontrib.testrail >= 1.3.1
foliantcontrib.utils >= 1.0.3
foliantcontrib.yaml_include >= 1.0.1

archeme >= 1.0.2

mkdocs-material == 4.6.3
pygments
pymdown-extensions

lxml
Jinja2
schema
PyYAML
Jinja2 == 3.1.2
lxml == 4.9.1
MarkupSafe == 2.0.1
mkdocs == 1.3.0
mkdocs-material == 8.2.14
mkdocs-material-extensions == 1.0.3
pydbml == 0.4.2
pygments == 2.12.0
pymdown-extensions == 9.4
PyYAML == 5.4
schema == 0.7.4