App Args
Provides a DigitalOcean App resource.
Example Usage
To create an app, provide a DigitalOcean app spec specifying the app's components.
Basic Example
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.App;
import com.pulumi.digitalocean.AppArgs;
import com.pulumi.digitalocean.inputs.AppSpecArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var golang_sample = new App("golang-sample", AppArgs.builder()
.spec(AppSpecArgs.builder()
.name("golang-sample")
.region("ams")
.services(AppSpecServiceArgs.builder()
.environmentSlug("go")
.git(AppSpecServiceGitArgs.builder()
.branch("main")
.repoCloneUrl("https://github.com/digitalocean/sample-golang.git")
.build())
.instanceCount(1)
.instanceSizeSlug("professional-xs")
.name("go-service")
.build())
.build())
.build());
}
}
Content copied to clipboard
Static Site Example
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.App;
import com.pulumi.digitalocean.AppArgs;
import com.pulumi.digitalocean.inputs.AppSpecArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var static_site_example = new App("static-site-example", AppArgs.builder()
.spec(AppSpecArgs.builder()
.name("static-site-example")
.region("ams")
.staticSites(AppSpecStaticSiteArgs.builder()
.buildCommand("bundle exec jekyll build -d ./public")
.git(AppSpecStaticSiteGitArgs.builder()
.branch("main")
.repoCloneUrl("https://github.com/digitalocean/sample-jekyll.git")
.build())
.name("sample-jekyll")
.outputDir("/public")
.build())
.build())
.build());
}
}
Content copied to clipboard
Multiple Components Example
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.App;
import com.pulumi.digitalocean.AppArgs;
import com.pulumi.digitalocean.inputs.AppSpecArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var mono_repo_example = new App("mono-repo-example", AppArgs.builder()
.spec(AppSpecArgs.builder()
.alerts(AppSpecAlertArgs.builder()
.rule("DEPLOYMENT_FAILED")
.build())
.databases(AppSpecDatabaseArgs.builder()
.engine("PG")
.name("starter-db")
.production(false)
.build())
.domains(Map.of("name", "foo.example.com"))
.name("mono-repo-example")
.region("ams")
.services(AppSpecServiceArgs.builder()
.alert(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
.environmentSlug("go")
.github(AppSpecServiceGithubArgs.builder()
.branch("main")
.deployOnPush(true)
.repo("username/repo")
.build())
.httpPort(3000)
.instanceCount(2)
.instanceSizeSlug("professional-xs")
.logDestination(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
.name("api")
.routes(AppSpecServiceRouteArgs.builder()
.path("/api")
.build())
.runCommand("bin/api")
.sourceDir("api/")
.build())
.staticSites(AppSpecStaticSiteArgs.builder()
.buildCommand("npm run build")
.github(AppSpecStaticSiteGithubArgs.builder()
.branch("main")
.deployOnPush(true)
.repo("username/repo")
.build())
.name("web")
.routes(AppSpecStaticSiteRouteArgs.builder()
.path("/")
.build())
.build())
.build())
.build());
}
}
Content copied to clipboard
Import
An app can be imported using its id
, e.g.
$ pulumi import digitalocean:index/app:App myapp fb06ad00-351f-45c8-b5eb-13523c438661
Content copied to clipboard