* stub out docs * add docs app * remove unused gcp code for packr * handle toc ajax * use SEGMENT_TOKEN for segment * remove manual install directory * docs first pass * remove loggin docs for now * remove webhooks docs for now * tweak docs list to first pass intentions * fix header links and add gen2
3.1 KiB
| order |
|---|
| 1 |
Running Locally
Running your application locally requires a Development Rack to be installed.
Starting Your Application
Once you have a Development Rack, you can go to the directory containing your application code and run convox start.
$ convox start
build | uploading source
build | starting build
build | Authenticating registry.dev.convox/convox: Login Succeeded
build | Building: .
build | Sending build context to Docker daemon 114.4MB
build | Step 1/5 : FROM golang:1.13 AS development
build | ---> 272e3f68338f
build | Step 2/5 : ENV DEVELOPMENT=true
build | ---> 8323381038aa
build | Step 3/5 : COPY . .
build | ---> e87c93ad5c25
build | Step 4/5 : RUN go install ./cmd/web
build | ---> 0be9da9a42c6
build | Step 5/5 : CMD ["bin/development", "web"]
build | ---> e87c93ad5c25
build | Successfully built e87c93ad5c25
build | Successfully tagged 66608a93037391937ae7bdd4e148189d1369d38e:latest
build | Running: docker tag 66608a93037391937ae7bdd4e148189d1369d38e dev/myapp:web.BABCDEFGHI
build | Running: docker tag dev/myapp:web.BABCDEFGHI registry.dev.convox/myapp:web.BABCDEFGHI
build | Running: docker push registry.dev.convox/myapp:web.BABCDEFGHI
convox | starting sync from . to . on web
web | Scaled up replica set web-786b6d8f5d to 1
web | Created pod: web-786b6d8f5d-l9jd2
web | Successfully assigned dev-convox/web-786b6d8f5d-l9jd2 to docker-desktop
web | Container image "registry.dev.convox/myapp:web.BABCDEFGHI" already present on machine
web | Created container main
web | make: '/go/bin/web' is up to date.
web | ns=web at=listen hostname="web.convox" proto="https" addr=":3000"
Code Sync
Convox automatically synchronizes your local changes up to the Development Rack so that you can work using your favorite editor.
All files or directories that appear in a COPY or ADD directive in your Dockerfile will be
synchronized.
Files or directories that appear in
.dockerignorewill not be synchronized.
Development Target
You can use a build target named development in your Dockerfile to work locally on an application that will be
later compiled to a binary and have its source code removed before deploying to production.
FROM golang:1.13 AS development
ENV DEVELOPMENT=true
COPY . .
RUN go install ./cmd/web
CMD ["bin/development", "web"]
FROM ubuntu:18.04 as production
ENV DEVELOPMENT=false
COPY --from=development /go/bin/web /app/web
CMD ["/app/web"]
In this example during convox start only the first section of the Dockerfile will be run. This allows you to
work in a container that contains the full source code where you can set CMD to a script that automatically
recompiles and reloads the application when the source code is changed.
When deploying to production the entire Dockerfile would be run and you would end up with a bare ubuntu:18.04 container
with only the compiled binary copied into it.