File: docker.rst

package info (click to toggle)
sphinx-needs 5.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 11,924 kB
  • sloc: python: 21,132; javascript: 187; makefile: 89; sh: 29; xml: 10
file content (222 lines) | stat: -rw-r--r-- 4,796 bytes parent folder | download
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
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
:orphan:

.. _docker:

Sphinx-Needs Docker Image
=========================

Status
------

=======================================  ====================
Image                                    Build Status   
=======================================  ====================
``danwos/sphinxneeds:latest``            |sphinxneeds-status|
``danwos/sphinxneeds-latexpdf:latest``   |sphinxneeds-status|
=======================================  ==================== 

.. |sphinxneeds-status| image:: badge.svg
   :target: https://github.com/useblocks/sphinx-needs/actions/workflows/docker.yaml



Image Variants
--------------

The Sphinx-Needs docker images come in two flavors, each designed for a specific
use case. 

``sphinxneeds:<tag>``
~~~~~~~~~~~~~~~~~~~~~
.. _latest_version:

This is the defacto docker image (size ~ 350MB). If you are not sure about what
your requirements are, you probably want to use this one.
You can use it as a throw away container (mount your documentation and start
the container), as well as the base to build your own docker images.

.. note::
   The docker image does not include latex packages and therefore does
   not support PDF generation. Please use the latex-pdf version below for
   such use cases.

Included Tools
^^^^^^^^^^^^^^

The image is based on `sphinx
image <https://hub.docker.com/r/sphinxdoc/sphinx>`__ and includes the
following tools.

+------------------------+
| Tools                  |
+========================+
| python-slim            |
+------------------------+
| sphinx                 |
+------------------------+
| sphinx-needs           |
+------------------------+
| sphinxcontrib-plantuml |
+------------------------+
| graphviz               |
+------------------------+
| jre                    |
+------------------------+

``sphinxneeds-latexpdf:<tag>``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This docker image includes all the tools in the :ref:`sphinxneeds:latest <latest_version>` image
and additionally PDF generation tools. The image is ~ 1.5GB large.


Included Tools
^^^^^^^^^^^^^^

The docker image is based on the `sphinx latexpdf
image <https://hub.docker.com/r/sphinxdoc/sphinx-latexpdf>`__ and
includes the following tools.

+------------------------+
| Tools                  |
+========================+
| python-slim            |
+------------------------+
| sphinx                 |
+------------------------+
| sphinx-needs           |
+------------------------+
| sphinxcontrib-plantuml |
+------------------------+
| graphviz               |
+------------------------+
| jre                    |
+------------------------+
| latexmk                |
+------------------------+
| texlive                |
+------------------------+

Getting Started
---------------

Prerequisites
~~~~~~~~~~~~~

To use the images, install and configure `Docker <https://www.docker.com/>`__.


Pulling the Image from Docker Hub
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The docker image can be pulled by

.. code:: bash

   docker pull danwos/sphinxneeds:latest

or

.. code:: bash

   docker pull danwos/sphinxneeds-latexpdf:latest

A specific version can be pulled with a version tag.

For example,

.. code:: bash

   docker pull danwos/sphinxneeds:0.7.8


Build The Image Locally
~~~~~~~~~~~~~~~~~~~~~~~

To build the image locally, execute the following commands.

.. code:: bash

   cd docker && ./build_docker.sh

.. note::
   The script allows to choose between html and pdf version and
   the Sphinx-Needs version to be installed.

Usage
-----

Linux
~~~~~

.. code:: bash

   docker run --rm -it -v $(pwd):/sphinxneeds danwos/sphinxneeds:latest <build-command>

Windows (cmd)
~~~~~~~~~~~~~

.. code:: bash

   docker run --rm -it -v %cd%:/sphinxneeds danwos/sphinxneeds:latest <build-command>

Windows (Powershell)
~~~~~~~~~~~~~~~~~~~~

.. code:: bash

   docker run --rm -it -v ${PWD}:/sphinxneeds danwos/sphinxneeds:latest <build-command>

.. _build-command:

``<build-command>``\ s to be used are:

Generate HTML
~~~~~~~~~~~~~

.. code:: bash

       make html

For example,

.. code:: bash

   docker run --rm -it -v $(pwd):/sphinxneeds danwos/sphinxneeds:latest make html

Generate PDF
~~~~~~~~~~~~

.. code:: bash

       make latexpdf

.. note:: Make sure ``danwos/sphinxneeds-latexpdf:latest`` is installed for PDF generation.

To enter a shell, execute:

Linux
~~~~~

.. code:: bash

   docker run --rm -it -v $(pwd):/sphinxneeds danwos/sphinxneeds:latest bash


Windows (cmd)
~~~~~~~~~~~~~

.. code:: bash

   docker run --rm -it -v %cd%:/sphinxneeds danwos/sphinxneeds:latest bash


Windows (Powershell)
~~~~~~~~~~~~~~~~~~~~

.. code:: bash

   docker run --rm -it -v ${PWD}:/sphinxneeds danwos/sphinxneeds:latest bash

Once inside the docker container shell, you can execute :ref:`docs build command <build-command>`