You can update an existing application that was deployed from either the dashboard or the CLI. The root command for updating an application is:
porter update --app [app-name]
app-name is the name of a web, worker, or job application on the Porter dashboard. The default behavior of this command is to build a new image using the local filesystem, push this image to the connect image repository, and re-deploy the application on the Porter dashboard. However, each of these steps can be configured.
As with the porter create command, you can update the configuration that an application uses by passing in the
--values flag, which should pass the filepath to a
values.yaml file. Note that this command merges the
values.yaml file with your existing configuration, so you should only specify options that you would like to modify. For example, the following
container: port: 8080
Would only update the container port to
8080, while keeping your existing configuration, after running the command:
porter update --app --values ./values.yaml
Go to the common configuration options section to view
values.yaml files for common use-cases.
The default behavior of this command will vary depending on if the application already has a Github repository source specified:
- If this application has a linked Github repository source, it will use the build settings from the linked source. That is, if the Github build settings specify a Dockerfile, this command will use the path to that Dockerfile.
- If the application does not have a linked source, this command will default to using a Dockerfile located at the root of the directory, at the path
./Dockerfile. If a
Dockerfileis not found, Porter will use a Heroku-18 buildpack to build your application.
These default behaviors can be overwritten through a combination of the
--method flag, the
--dockerfile flag, and the
If you specify
--source github, this command will look for a remote Github repository that has been linked to this application. If one is found, the command will download an archive of the Github repository from the latest commit of the linked branch, and will use that as the filesystem to build from.
If you would only like to update the configuration for your application via a
values.yaml file (without building a new image), you can do so with the following command:
porter update config --app [app-name] --values [values-file]
For example, to update the app
web-test, and to programmatically set the environment variables for that application, you can create a file called
web-test-values.yaml with the following structure:
container: env: normal: TESTING: test-from-cli
If you then run
porter update config --app web-test --values web-test-values.yaml, you’ll now see the new values in the application: