diff --git a/docs/deployment/methods/buildpacks.md b/docs/deployment/methods/buildpacks.md index ab03841de..12a01027c 100644 --- a/docs/deployment/methods/buildpacks.md +++ b/docs/deployment/methods/buildpacks.md @@ -7,6 +7,14 @@ Dokku normally defaults to using [heroku buildpacks](https://devcenter.heroku.co - See the [environment variable documentation](/docs/configuration/environment-variables.md) for more details. - Create a `.buildpacks` file in the root of your repository. +## Switching from Dockerfile deployments + +If an application was previously deployed via Dockerfile, the following commands should be run before a buildpack deploy will succeed: + +```shell +dokku config:unset --no-restart node-js-app DOKKU_DOCKERFILE_CMD DOKKU_DOCKERFILE_ENTRYPOINT DOKKU_PROXY_PORT_MAP +``` + ## Specifying a custom buildpack In certain cases you may want to specify a custom buildpack. While Dokku uses herokuish to support all the [official heroku buildpacks](https://github.com/gliderlabs/herokuish#buildpacks), it is possible that the buildpack detection does not work well for your application. As well, you may wish to use a custom buildpack to handle specific application logic. diff --git a/docs/deployment/methods/dockerfiles.md b/docs/deployment/methods/dockerfiles.md index c04aaf468..d8040fbb1 100644 --- a/docs/deployment/methods/dockerfiles.md +++ b/docs/deployment/methods/dockerfiles.md @@ -11,9 +11,13 @@ To use a dockerfile for deployment, commit a valid `Dockerfile` to the root of y - The application has a `BUILDPACK_URL` environment variable set via the `dokku config:set` command or in a committed `.env` file. In this case, Dokku will use your specified buildpack. - The application has a `.buildpacks` file in the root of the repository. In this case, Dokku will use your specified buildpack(s). -## Exposed ports +## Switching from Buildpack deployments -See the [port management documentation](/docs/networking/port-management.md). +If an application was previously deployed via Buildpacks, the following commands should be run before a Dockerfile deploy will succeed: + +```shell +dokku config:unset --no-restart node-js-app DOKKU_PROXY_PORT_MAP +``` ## Build-time Configuration Variables @@ -55,7 +59,6 @@ ENV NODE_ENV ${NODE_ENV} RUN echo $NODE_ENV ``` - ## Customizing the run command By default no arguments are passed to `docker run` when deploying the container and the `CMD` or `ENTRYPOINT` defined in the `Dockerfile` are executed. You can take advantage of docker ability of overriding the `CMD` or passing parameters to your `ENTRYPOINT` setting `$DOKKU_DOCKERFILE_START_CMD`. Let's say for example you are deploying a base nodejs image, with the following `ENTRYPOINT`: @@ -105,3 +108,7 @@ a worker container for this app, you can run `dokku ps:scale worker=1` and a new started by running `docker run bin/run-worker.sh` (the actual `docker run` commands are a bit more complex, but this is the basic idea). If you use an `ENTRYPOINT` in your `Dockerfile`, the lines in your `Procfile` will be passed as arguments to the `ENTRYPOINT` script instead of being executed. + +## Exposed ports + +See the [port management documentation](/docs/networking/port-management.md).