|
1 | | -# Labspace starter |
| 1 | +# Labspace - Compose Quickstart |
2 | 2 |
|
3 | | -This repository is intended to server as a template to help bootstrap a new Labspace. |
| 3 | +An interactive lab that teaches Docker Compose fundamentals by building a multi-container Python Flask and Redis application from scratch. Learners progress from a bare `compose.yaml` through health checks, live development with watch mode, data persistence with volumes, and multi-file Compose configurations. |
4 | 4 |
|
5 | | -## Instructions |
| 5 | +## Learning objectives |
6 | 6 |
|
7 | | -1. Create a new repository using this repo as the template ([docs here](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)). |
| 7 | +This Labspace will teach you the following: |
8 | 8 |
|
9 | | - **NOTE:** After creating the repo, a GHA workflow will run to do some additional bootstrapping. The bootstrapping workflow file will be removed during bootstrapping. |
| 9 | +- Define a multi-service app in a `compose.yaml` file |
| 10 | +- Control startup order with health checks and `depends_on` |
| 11 | +- Iterate on code quickly using watch mode |
| 12 | +- Persist data across container restarts with named volumes |
| 13 | +- Compose multi-file configurations with the `include` directive |
| 14 | +- Use core debugging commands (`config`, `logs`, `exec`) |
10 | 15 |
|
11 | | -2. Clone your newly created repo to your local machine |
| 16 | +## Launch the Labspace |
12 | 17 |
|
13 | | -3. Start the local development mode: |
| 18 | +To launch the Labspace, run the following command: |
14 | 19 |
|
15 | | - ```bash |
16 | | - # On Mac/Linux |
17 | | - CONTENT_PATH=$PWD docker compose up --watch |
| 20 | +```bash |
| 21 | +docker compose -f oci://dockersamples/labspace-compose-quickstart up -d |
| 22 | +``` |
18 | 23 |
|
19 | | - # On Windows with PowerShell |
20 | | - $Env:CONTENT_PATH = (Get-Location).Path; docker compose up --watch |
21 | | - ``` |
22 | | - |
23 | | -4. Update the `labspace/labspace.yaml` with your Labspace's title and description |
| 24 | +And then open your browser to http://localhost:3030. |
24 | 25 |
|
25 | | -5. Write your Labspace! Being in dev mode, your changes should be visible in the interface without a restart. Feel free to edit either on your host machine or in the Labspace itself! |
| 26 | +### Using the Docker Desktop extension |
26 | 27 |
|
27 | | - Add any supporting application files or resources directly into the Labspace. This repo will be cloned into the Labspace at startup. |
| 28 | +If you have the Labspace extension installed (`docker extension install dockersamples/labspace-extension` if not), you can also [click this link](https://open.docker.com/dashboard/extension-tab?extensionId=dockersamples/labspace-extension&location=dockersamples/labspace-compose-quickstart&title=Compose%20Quickstart) to launch the Labspace. |
28 | 29 |
|
29 | | - Be sure to check out the [docs](https://github.com/dockersamples/labspace-infra/tree/main/docs) for additional information and guidelines. |
| 30 | +## Contributing |
30 | 31 |
|
| 32 | +If you find something wrong or something that needs to be updated, feel free to submit a PR. If you want to make a larger change, feel free to fork the repo into your own repository. |
31 | 33 |
|
| 34 | +**Important note:** If you fork it, you will need to update the GHA workflow to point to your own Hub repo. |
32 | 35 |
|
33 | | -### Setting up the deployment pipeline |
| 36 | +1. Clone this repo |
34 | 37 |
|
35 | | -The template repo contains a workflow file to make it easy to publish your Labspace. |
| 38 | +2. Start the Labspace in content development mode: |
36 | 39 |
|
37 | | -1. Add GitHub Action Secrets in your new repo for the following: |
| 40 | + ```bash |
| 41 | + # On Mac/Linux |
| 42 | + CONTENT_PATH=$PWD docker compose up --watch |
38 | 43 |
|
39 | | - - `DOCKERHUB_USERNAME` - the username to authenticate to Docker Hub with |
40 | | - - `DOCKERHUB_TOKEN` - a personal or organization access token to use for authentication |
| 44 | + # On Windows with PowerShell |
| 45 | + $Env:CONTENT_PATH = (Get-Location).Path; docker compose up --watch |
| 46 | + ``` |
41 | 47 |
|
42 | | -2. In the `.github/workflows/publish-labspace.yaml.temp` file, update the `DOCKERHUB_REPO` with the name of the Docker Hub repo you want to publish to. |
| 48 | +3. Open the Labspace at http://dockerlabs.xyz. |
43 | 49 |
|
44 | | -3. Rename the workflow file to remove the `.temp` extension. |
| 50 | +4. Make the necessary changes and validate they appear as you expect in the Labspace |
45 | 51 |
|
46 | | - ```bash |
47 | | - mv .github/workflows/publish-labspace.yaml.temp .github/workflows/publish-labspace.yaml |
48 | | - ``` |
| 52 | + Be sure to check out the [docs](https://github.com/dockersamples/labspace-infra/tree/main/docs) for additional information and guidelines. |
0 commit comments