From ce5d4a1006dc88bd03bf3e6e3d835912022d84a5 Mon Sep 17 00:00:00 2001 From: Thomas Tacquet Date: Fri, 18 Apr 2025 11:45:16 +0200 Subject: [PATCH 1/3] feat(srvless): image size tips --- .../reference-content/containers-limitations.mdx | 16 +++++++++++++--- .../reference-content/jobs-limitations.mdx | 11 +++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/pages/serverless-containers/reference-content/containers-limitations.mdx b/pages/serverless-containers/reference-content/containers-limitations.mdx index 2527484692..78a836edef 100644 --- a/pages/serverless-containers/reference-content/containers-limitations.mdx +++ b/pages/serverless-containers/reference-content/containers-limitations.mdx @@ -22,9 +22,8 @@ This section contains usage limits that apply when using Serverless Containers. | Containers | Max number | 1000* | Organization | | Total container memory\** | Max size | 600 GiB | Organization | | Custom domains | Max number | 50 | Container | -| Image size compressed | Max size | 250 MiB | Container | -| Image size uncompressed | Max size | 1 GiB | Container | -| Temporary disk size | Max size | 1024 MiB | Container | +| Recommended maximum uncompressed image size | Max size | 1 GB | Container | +| Temporary disk size ยจ | Max size | 24 000 MiB | Container | | Invocation rate | Max number | 1000 per second | Container | | Concurrency | Max | 80 | Container Instance | | Max Scale (simultaneous Container instances) | Max | 50 | Container | @@ -49,6 +48,17 @@ These limits are enforced as [Organization quotas](/organizations-and-projects/a During the execution of the container, if the limits are exceeded, a restart occurs. +## Image size + +We recommend to keep your image size **below 1GB** to ensure faster deployment and better cold start performances. + +### Tips for keeping image size down + +* Use lightweight distribution like *Alpine* +* Minimize layers and unnecessary dependencies +* Clean up temp files and cache (e.g., `rm -rf /var/lib/apt/lists/*` in Debian-based images) +* Use multi-stage builds to keep only runtime essentials. [Example](https://github.com/scaleway/serverless-examples/blob/a7a3b5fc3427ec0f1391aaa78957f91af266867c/containers/rust-hello-world/Dockerfile#L14) + ## Configuration Restrictions In order to ensure the proper functioning of the product, we restrict the use of certain ports and environment variables diff --git a/pages/serverless-jobs/reference-content/jobs-limitations.mdx b/pages/serverless-jobs/reference-content/jobs-limitations.mdx index ccd93caf4b..b1b9ac9cd4 100644 --- a/pages/serverless-jobs/reference-content/jobs-limitations.mdx +++ b/pages/serverless-jobs/reference-content/jobs-limitations.mdx @@ -62,3 +62,14 @@ In order to ensure the proper functioning of the product, we restrict the use of ## Private Network and Virtual Private Cloud (VPC) compatibility Refer to the [dedicated FAQ](/serverless-jobs/faq/#how-can-i-configure-access-to-a-private-network-or-virtual-private-cloud-vpc) for more information on Serverless Jobs compatibility with Private Networks and [Virtual Private Cloud (VPC)](/vpc/). + +## Image size + +We recommend to keep your image size **below 2GB** to ensure faster deployment. + +### Tips for keeping image size down + +* Use lightweight distribution like *Alpine* +* Minimize layers and unnecessary dependencies +* Clean up temp files and cache (e.g., `rm -rf /var/lib/apt/lists/*` in Debian-based images) +* Use multi-stage builds to keep only runtime essentials. [Example](https://github.com/scaleway/serverless-examples/blob/a7a3b5fc3427ec0f1391aaa78957f91af266867c/containers/rust-hello-world/Dockerfile#L14) From bc64a54c796f3e26f354ead30ad9696e199098e0 Mon Sep 17 00:00:00 2001 From: Thomas Tacquet Date: Fri, 18 Apr 2025 16:47:26 +0200 Subject: [PATCH 2/3] note about cold-starts --- pages/serverless-containers/faq.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pages/serverless-containers/faq.mdx b/pages/serverless-containers/faq.mdx index 7c4c20582c..54eb5be6cd 100644 --- a/pages/serverless-containers/faq.mdx +++ b/pages/serverless-containers/faq.mdx @@ -140,6 +140,8 @@ Ensure that your code avoids heavy computations or long-running initialization a * **Use sandbox v2**: We recommend you use sandbox v2 (advanced settings) to reduce cold starts. +* **Reduce image size**: Ensure to keep your image small and clean: [read more](/serverless-containers/reference-content/containers-limitations/#image-size) + ### Which Linux syscalls are supported? - [Sandbox](/serverless-containers/concepts/#sandbox) v1 guarantees full compatibility with Linux syscalls. From 0e4216eecd7fd145e358b977c4b22d85f8d35215 Mon Sep 17 00:00:00 2001 From: Thomas TACQUET Date: Fri, 18 Apr 2025 18:47:24 +0200 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Jessica <113192637+jcirinosclwy@users.noreply.github.com> --- pages/serverless-containers/faq.mdx | 2 +- .../reference-content/containers-limitations.mdx | 2 +- pages/serverless-jobs/reference-content/jobs-limitations.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/serverless-containers/faq.mdx b/pages/serverless-containers/faq.mdx index 54eb5be6cd..5eee936750 100644 --- a/pages/serverless-containers/faq.mdx +++ b/pages/serverless-containers/faq.mdx @@ -140,7 +140,7 @@ Ensure that your code avoids heavy computations or long-running initialization a * **Use sandbox v2**: We recommend you use sandbox v2 (advanced settings) to reduce cold starts. -* **Reduce image size**: Ensure to keep your image small and clean: [read more](/serverless-containers/reference-content/containers-limitations/#image-size) +* **Reduce image size**: Ensure your image is small and clean. [Read our tips for keeping image sizes down](/serverless-containers/reference-content/containers-limitations/#image-size). ### Which Linux syscalls are supported? diff --git a/pages/serverless-containers/reference-content/containers-limitations.mdx b/pages/serverless-containers/reference-content/containers-limitations.mdx index 78a836edef..594c8de60f 100644 --- a/pages/serverless-containers/reference-content/containers-limitations.mdx +++ b/pages/serverless-containers/reference-content/containers-limitations.mdx @@ -50,7 +50,7 @@ During the execution of the container, if the limits are exceeded, a restart occ ## Image size -We recommend to keep your image size **below 1GB** to ensure faster deployment and better cold start performances. +We recommend keeping your image size **below 1 GB** to ensure faster deployment and better cold start performances. ### Tips for keeping image size down diff --git a/pages/serverless-jobs/reference-content/jobs-limitations.mdx b/pages/serverless-jobs/reference-content/jobs-limitations.mdx index b1b9ac9cd4..e0ce51bbf5 100644 --- a/pages/serverless-jobs/reference-content/jobs-limitations.mdx +++ b/pages/serverless-jobs/reference-content/jobs-limitations.mdx @@ -65,7 +65,7 @@ Refer to the [dedicated FAQ](/serverless-jobs/faq/#how-can-i-configure-access-to ## Image size -We recommend to keep your image size **below 2GB** to ensure faster deployment. +We recommend keeping your image size **below 2 GB** to ensure faster deployment. ### Tips for keeping image size down