You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 15/umbraco-cms/fundamentals/setup/server-setup/running-umbraco-in-docker.md
+23-18Lines changed: 23 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,25 +1,31 @@
1
1
# Running Umbraco in Docker
2
2
3
-
Exactly how you choose to compose your Dockerfile depends on your needs, and your project. This section is not intended as a guide,
4
-
but as a general overview of what to be aware of when hosting in Docker.
3
+
Exactly how you choose to compose your Dockerfile will depend on your project specific needs. This section is not intended as a comprehensive guide, rather as an overview of topics to be aware of when hosting in Docker.
5
4
6
5
## What is Docker
7
6
8
-
Docker is a platform for developing, shipping, and running applications in containers. There exist multiple services for hosting these containers,
9
-
for more information, [refer to the official Docker documentation](https://docs.docker.com/)
7
+
Docker is a platform for developing, shipping, and running applications in containers. Multiple services exist for hosting these containers. For more information, [refer to the official Docker documentation](https://docs.docker.com/)
10
8
11
9
## The Docker file system
12
10
13
-
By default, all files created inside a container are written to an ephemeral writable container layer.
11
+
By default, files created inside a container are written to an ephemeral, writable container layer.
14
12
This means that the files don't persist when the container is removed, and it's challenging to get files out of the container. Additionally, this writable layer is not suitable for performance-critical data processing.
15
-
This has implications when running Umbraco in Docker. For more information, refer to the [Docker documentation on storage](https://docs.docker.com/engine/storage/).
13
+
14
+
This has implications when running Umbraco in Docker.
15
+
16
+
For more information, refer to the [Docker documentation on storage](https://docs.docker.com/engine/storage/).
16
17
17
18
### General file system consideration
18
19
19
-
In general, when working with files and Docker you work in a "push" fashion with the read-only layers. WWhen you build, you take all your files and "push" them into the read-only layer.
20
-
This means that you should avoid making files on the fly, and instead rely on building your image. You should not create or edit template files on the fly, the same goes for script and style files.
20
+
In general, when working with files and Docker you work in a "push" fashion with read-only layers. When you build, you take all your files and "push" them into this read-only layer.
21
+
22
+
This means that you should avoid making files on the fly, and instead rely on building your image.
23
+
24
+
In an Umbraco context, this means you should not create or edit template, script or stylesheet files via the backoffice. These should be deployed as part of your web application and not managed via Umbraco.
25
+
26
+
Similarly, you shouldn't use InMemory modelsbuilder, since that also relies on creating files on the disk. While this is not a hard requirement, it doesn't provide any value if not live editing your site.
21
27
22
-
Similarly, you shouldn't use InMemory modelsbuilder, since that also relies on creating files on the disk. While this is not a hard requirement, it doesn't provide any value if not live editing your site. Instead, use source codein development, and none in production, as [described when using runtime modes](https://docs.umbraco.com/umbraco-cms/fundamentals/setup/server-setup/runtime-modes).
28
+
Instead, configure models builder to use use "source code" mode in development, and "none" in production, as [described when using runtime modes](https://docs.umbraco.com/umbraco-cms/fundamentals/setup/server-setup/runtime-modes).
23
29
24
30
25
31
### Logs
@@ -33,20 +39,19 @@ The `/umbraco/Data/` directory is used to store temporary files, such as file up
33
39
34
40
### Media
35
41
36
-
Similarly to logs, it's recommended to not store media in the writable layer, both for performance reasons,
37
-
but also for practical development reasons. You likely want to persist media files between containers.
42
+
It's recommended to not store media in the writable layer. This is for similar performance reasons as logs,
43
+
but also for practical hosting reasons. You likely want to persist media files between containers.
38
44
39
-
One possible solution here is to again use bind mounts. The ideal solution is store the media and ImageSharp cache externally,
40
-
for more information on this, refer to the [Azure Blob Storage documentation](https://docs.umbraco.com/umbraco-cms/extending/filesystemproviders/azure-blob-storage).
45
+
One possible solution here is to again use bind mounts. The ideal setup though is to store the media and ImageSharp cache externally. For more information on this, refer to the [Azure Blob Storage documentation](https://docs.umbraco.com/umbraco-cms/extending/filesystemproviders/azure-blob-storage).
41
46
42
47
### Required files
43
48
44
-
If your solution requires some files to run, for instance license files. You need to pass these files into the container at build time, or mount them externally.
49
+
Your solution may require some specific files to run, such as license files. You will need to pass these files into the container at build time, or mount them externally.
45
50
46
51
## HTTPS
47
52
48
-
When running in websites in Docker, it's common to use do so behind a reverse proxy, or load balancers.
49
-
In these scenarios you're likely to handle SSL termination at the reverse proxy. This means that Umbraco will not be aware of the SSL termination, and will likely complain about not using HTTPS.
53
+
When running in websites in Docker, it's common to use do so behind a reverse proxy, or load balancer.
54
+
In these scenarios you will likely handle SSL termination at the reverse proxy. This means that Umbraco will not be aware of the SSL termination, and will complain about not using HTTPS.
50
55
51
56
Umbraco checks for HTTPS in two locations:
52
57
@@ -57,7 +62,7 @@ To avoid these checks failing, you can remove them in your project.
57
62
58
63
### Health Check
59
64
60
-
The health check must be removed via configuration, either through the `appsettings.json`, environment variables, or similar, for more information see the [Health Check documentation](../../../reference/configuration/healthchecks.md).
65
+
The health check must be removed via configuration, through the `appsettings.json` file, environment variables, or similar. For more information see the [Health Check documentation](../../../reference/configuration/healthchecks.md).
61
66
62
67
The `HstsCheck` key is `E2048C48-21C5-4BE1-A80B-8062162DF124` so the appsettings will look something like:
63
68
@@ -76,7 +81,7 @@ The `HstsCheck` key is `E2048C48-21C5-4BE1-A80B-8062162DF124` so the appsettings
76
81
77
82
### Runtime mode validator
78
83
79
-
The `UseHttpsValidator` must be removed through code, for more information see the [Runtime mode documentation](runtime-modes.md).
84
+
The `UseHttpsValidator` must be removed through code For more information see the [Runtime mode documentation](runtime-modes.md).
80
85
81
86
The code to remove the validator can look something like:
0 commit comments