Tuffenuff 1.0.1
dotnet add package Tuffenuff --version 1.0.1
NuGet\Install-Package Tuffenuff -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tuffenuff" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tuffenuff --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Tuffenuff, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tuffenuff as a Cake Addin #addin nuget:?package=Tuffenuff&version=1.0.1 // Install Tuffenuff as a Cake Tool #tool nuget:?package=Tuffenuff&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Tuffenuff
Simple F# DSL for generating dockerfiles.
Why?
- To work with more flexing scripts and ability to reuse Dockerfile code.
- Becouse I can.
Usage
Hello, World!
#r "nuget: Tuffenuff"
open System.IO
open Tuffenuff
df [
!/ "Simple Hello World dockerfile"
from "alpine:3.18"
cmd [| "echo" ; "'Hello world'" |]
]
|> render
|> toFile (Path.Combine(__SOURCE_DIRECTORY__, "Dockerfile"))
will create Dockerfile
with following content:
# Simple Hello World dockerfile
FROM alpine:3.18
CMD [ "echo", "'Hello world'" ]
More complex example
foo.fsx
#r "nuget: Tuffenuff"
open Tuffenuff
open Tuffenuff.DSL
let echoMaessage () =
df [
!/ "this is from 'foo.fsx'"
!> """echo 'echo "Shalom!"' > /etc/profile.d/welcome.sh"""
]
Dockerfile.part
# this is from 'Dockerfile.part'
ENTRYPOINT [ "/bin/bash", "-l" ]
bar.fsx
#r "nuget: Tuffenuff"
#load "foo.fsx"
open System.IO
open Tuffenuff
open Tuffenuff.DSL
open foo
let part1 = echoMaessage ()
let part2 =
Dockerfile.fromFile (Path.Combine (__SOURCE_DIRECTORY__, "Dockerfile.part"))
df [
!/ "Partial dockerfile"
from "ubuntu:latest"
!&part1
!&part2
]
|> Dockerfile.render
|> Dockerfile.toFile (Path.Combine (__SOURCE_DIRECTORY__, "Dockerfile.Partial"))
will create Dockerfile
with following content:
# Partial dockerfile
FROM ubuntu:latest
# this is from 'foo.fsx'
RUN \
echo 'echo "Shalom!"' > /etc/profile.d/welcome.sh
# this is from 'Dockerfile.part'
ENTRYPOINT [ "/bin/bash", "-l" ]
More examples
For more see examples.
Release notes
See release page.
License
MIT License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- FSharp.Core (>= 6.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.1 | 107 | 5/11/2024 |
1.0.0 | 207 | 10/27/2023 |
0.2.0 | 127 | 9/27/2023 |
0.1.1 | 151 | 6/16/2023 |
0.1.0 | 154 | 6/15/2023 |
0.0.4-beta | 115 | 6/14/2023 |
0.0.3-beta | 110 | 6/7/2023 |
0.0.2-alpha | 140 | 6/2/2023 |
0.0.1-alpha | 126 | 5/30/2023 |