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: README.md
+20-9Lines changed: 20 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,20 +12,27 @@ Build and publish container images using Swift Package Manager.
12
12
13
13
Container images are the standard way to package cloud software today. Once you have packaged your server in a container image, you can deploy it on any container-based public or private cloud service, or run it locally using a desktop container runtime.
14
14
15
-
Swift Container Plugin makes it easy to build container images for servers written in Swift, using Swift Package Manager.
15
+
Use Swift Container Plugin to build and publish container images for your Swift services in one streamlined workflow with Swift Package Manager.
*[How to put Swift in a box](https://fosdem.org/2025/schedule/event/fosdem-2025-5116-how-to-put-swift-in-a-box-building-container-images-with-swift-container-plugin/) at [FOSDEM 2025](https://fosdem.org/2025/schedule/track/swift/).
20
-
*[Swift to the cloud in a single step](https://www.youtube.com/watch?v=9AaINsCfZzw) at [ServerSide.Swift 2024](https://www.serversideswift.info/2024/speakers/euan-harris/).
19
+
1.[Add the plugin to your project's dependencies](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin/adding-the-plugin-to-your-project) in `Package.swift`.
20
+
2.[Build and package your service](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin/build) using Swift Package Manager.
21
+
- If you are building on macOS, [use a Swift SDK](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin/requirements) to cross-compile a Linux executable.
22
+
- If you are building on Linux, use your native Swift compiler to build a Linux executable. If you have special requirements such as building a static executable, or cross-compiling to a different processor architecture, use a suitable Swift SDK.
23
+
3.`swift-container-plugin` automatically packages your executable in a container image and publishes it to a container registry.
24
+
4.[Deploy your container image](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin/run) on any container-based platform.
25
+
26
+
Find full details [in the documentation](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin).
21
27
22
28
## Usage
23
29
24
30
Swift Container Plugin can package any executable product defined in `Package.swift` in a container image and publish it to a container registry.
25
31
26
32
### Build and publish a container image
27
33
28
-
After adding the plugin to your project, you can build and publish a container image in one step:
34
+
After adding the plugin to your project, you can build and publish a container image in one step.
35
+
Here is how to build the [HelloWorld example](https://github.com/apple/swift-container-plugin/tree/main/Examples/HelloWorldHummingbird) as a static executable for Linux running on the `x86_64` architecture:
29
36
30
37
```
31
38
% swift package --swift-sdk x86_64-swift-linux-musl \
You can deploy your service in the cloud, or use a standards-compliant container runtime such as `podman` to run it locally:
62
+
Deploy your service in the cloud, or use a standards-compliant container runtime to run it locally:
56
63
57
64
```
58
65
% podman run -p 8080:8080 registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c9040b16f9f2c2ed9190317147dee95a218faf1df
@@ -67,8 +74,12 @@ Trying to pull registry.example.com/myservice@sha256:a3f75d0932d052dd9d448a1c904
67
74
* On macOS you must install a cross-compilation Swift SDK, such as the [Swift Static Linux SDK](https://www.swift.org/documentation/articles/static-linux-getting-started.html), in order to build executables which can run on Linux-based cloud infrastructure.
68
75
* A container runtime is not required to build an image, but one must be available wherever the image is to be run.
69
76
70
-
## Getting Started
77
+
### Find out more
78
+
* Learn more about setting up your project in the [plugin documentation](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin).
79
+
80
+
* Take a look at [more examples](https://github.com/apple/swift-container-plugin/tree/main/Examples).
71
81
72
-
Learn more about setting up your project in the [plugin documentation](https://swiftpackageindex.com/apple/swift-container-plugin/main/documentation/swift-container-plugin).
82
+
* Watch some talks:
73
83
74
-
Take a look at the [Examples](Examples).
84
+
*[How to put Swift in a box](https://fosdem.org/2025/schedule/event/fosdem-2025-5116-how-to-put-swift-in-a-box-building-container-images-with-swift-container-plugin/) at [FOSDEM 2025](https://fosdem.org/2025/schedule/track/swift/).
85
+
*[Swift to the cloud in a single step](https://www.youtube.com/watch?v=9AaINsCfZzw) at [ServerSide.Swift 2024](https://www.serversideswift.info/2024/speakers/euan-harris/).
0 commit comments