File tree Expand file tree Collapse file tree 6 files changed +47
-0
lines changed
packages/techdocs-cli/src Expand file tree Collapse file tree 6 files changed +47
-0
lines changed Original file line number Diff line number Diff line change @@ -83,6 +83,8 @@ Serve a documentation project locally in a Backstage app-like environment
83
83
Options:
84
84
-i, --docker-image < DOCKER_IMAGE> The mkdocs docker container to use (default: " spotify/techdocs" )
85
85
--docker-entrypoint < DOCKER_ENTRYPOINT> Override the image entrypoint
86
+ --docker-option < DOCKER_OPTION...> Extra options to pass to the docker run command, e.g. " --add-host=internal.host:192.168.11.12"
87
+ (can be added multiple times).
86
88
--no-docker Do not use Docker, use MkDocs executable in current user environment.
87
89
--mkdocs-port < PORT> Port for MkDocs server to use (default: " 8000" )
88
90
-v --verbose Enable verbose output. (default: false)
Original file line number Diff line number Diff line change @@ -215,6 +215,10 @@ export function registerCommands(program: Command) {
215
215
'--docker-entrypoint <DOCKER_ENTRYPOINT>' ,
216
216
'Override the image entrypoint' ,
217
217
)
218
+ . option (
219
+ '--docker-option <DOCKER_OPTION...>' ,
220
+ 'Extra options to pass to the docker run command, e.g. "--add-host=internal.host:192.168.11.12" (can be added multiple times).' ,
221
+ )
218
222
. option (
219
223
'--no-docker' ,
220
224
'Do not use Docker, run `mkdocs serve` in current user environment.' ,
@@ -237,6 +241,10 @@ export function registerCommands(program: Command) {
237
241
'--docker-entrypoint <DOCKER_ENTRYPOINT>' ,
238
242
'Override the image entrypoint' ,
239
243
)
244
+ . option (
245
+ '--docker-option <DOCKER_OPTION...>' ,
246
+ 'Extra options to pass to the docker run command, e.g. "--add-host=internal.host:192.168.11.12" (can be added multiple times).' ,
247
+ )
240
248
. option (
241
249
'--no-docker' ,
242
250
'Do not use Docker, use MkDocs executable in current user environment.' ,
Original file line number Diff line number Diff line change @@ -62,6 +62,7 @@ export default async function serveMkdocs(opts: OptionValues) {
62
62
port : opts . port ,
63
63
dockerImage : opts . dockerImage ,
64
64
dockerEntrypoint : opts . dockerEntrypoint ,
65
+ dockerOptions : opts . dockerOption ,
65
66
useDocker : opts . docker ,
66
67
stdoutLogFunc : logFunc ,
67
68
stderrLogFunc : logFunc ,
Original file line number Diff line number Diff line change @@ -93,6 +93,7 @@ export default async function serve(opts: OptionValues) {
93
93
port : opts . mkdocsPort ,
94
94
dockerImage : opts . dockerImage ,
95
95
dockerEntrypoint : opts . dockerEntrypoint ,
96
+ dockerOptions : opts . dockerOption ,
96
97
useDocker : opts . docker ,
97
98
stdoutLogFunc : mkdocsLogFunc ,
98
99
stderrLogFunc : mkdocsLogFunc ,
Original file line number Diff line number Diff line change @@ -64,6 +64,39 @@ describe('runMkdocsServer', () => {
64
64
expect . objectContaining ( { } ) ,
65
65
) ;
66
66
} ) ;
67
+
68
+ it ( 'should accept custom docker options' , async ( ) => {
69
+ await runMkdocsServer ( {
70
+ dockerOptions : [
71
+ '--add-host=internal.host:192.168.11.12' ,
72
+ '--name' ,
73
+ 'my-techdocs-container' ,
74
+ ] ,
75
+ } ) ;
76
+
77
+ expect ( run ) . toHaveBeenCalledWith (
78
+ 'docker' ,
79
+ expect . arrayContaining ( [
80
+ 'run' ,
81
+ '--rm' ,
82
+ '-w' ,
83
+ '/content' ,
84
+ '-v' ,
85
+ `${ process . cwd ( ) } :/content` ,
86
+ '-p' ,
87
+ '8000:8000' ,
88
+ '-it' ,
89
+ '--add-host=internal.host:192.168.11.12' ,
90
+ '--name' ,
91
+ 'my-techdocs-container' ,
92
+ 'spotify/techdocs' ,
93
+ 'serve' ,
94
+ '--dev-addr' ,
95
+ '0.0.0.0:8000' ,
96
+ ] ) ,
97
+ expect . objectContaining ( { } ) ,
98
+ ) ;
99
+ } ) ;
67
100
} ) ;
68
101
69
102
describe ( 'mkdocs' , ( ) => {
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ export const runMkdocsServer = async (options: {
22
22
useDocker ?: boolean ;
23
23
dockerImage ?: string ;
24
24
dockerEntrypoint ?: string ;
25
+ dockerOptions ?: string [ ] ;
25
26
stdoutLogFunc ?: LogFunc ;
26
27
stderrLogFunc ?: LogFunc ;
27
28
} ) : Promise < ChildProcess > => {
@@ -45,6 +46,7 @@ export const runMkdocsServer = async (options: {
45
46
...( options . dockerEntrypoint
46
47
? [ '--entrypoint' , options . dockerEntrypoint ]
47
48
: [ ] ) ,
49
+ ...( options . dockerOptions || [ ] ) ,
48
50
dockerImage ,
49
51
'serve' ,
50
52
'--dev-addr' ,
You can’t perform that action at this time.
0 commit comments