Home Explore Blog CI



docker

content/guides/bun/develop.md
5ed76270cf2bdbef1ecf12934fc2ebfb18ca9e864b4d1efb00000003000009cb
---
title: Use containers for Bun development
linkTitle: Develop your app
weight: 20
keywords: bun, local, development
description: Learn how to develop your Bun application locally.
aliases:
- /language/bun/develop/
---

## Prerequisites

Complete [Containerize a Bun application](containerize.md).

## Overview

In this section, you'll learn how to set up a development environment for your containerized application. This includes:

- Configuring Compose to automatically update your running Compose services as you edit and save your code

## Get the sample application

Clone the sample application to use with this guide. Open a terminal, change directory to a directory that you want to work in, and run the following command to clone the repository:

```console
$ git clone https://github.com/dockersamples/bun-docker.git && cd bun-docker
```

## Automatically update services

Use Compose Watch to automatically update your running Compose services as you
edit and save your code. For more details about Compose Watch, see [Use Compose
Watch](/manuals/compose/how-tos/file-watch.md).

Open your `compose.yml` file in an IDE or text editor and then add the Compose Watch instructions. The following example shows how to add Compose Watch to your `compose.yml` file.

```yaml {hl_lines="9-12",linenos=true}
services:
  server:
    image: bun-server
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    develop:
      watch:
        - action: rebuild
          path: .
```

Run the following command to run your application with Compose Watch.

```console
$ docker compose watch
```

Now, if you modify your `server.js` you will see the changes in real time without re-building the image.

To test it out, open the `server.js` file in your favorite text editor and change the message from `{"Status" : "OK"}` to `{"Status" : "Updated"}`. Save the file and refresh your browser at `http://localhost:3000`. You should see the updated message.

Press `ctrl+c` in the terminal to stop your application.

## Summary

In this section, you also learned how to use Compose Watch to automatically rebuild and run your container when you update your code.

Related information:
 - [Compose file reference](/reference/compose-file/)
 - [Compose file watch](/manuals/compose/how-tos/file-watch.md)
 - [Multi-stage builds](/manuals/build/building/multi-stage.md)

## Next steps

In the next section, you'll take a look at how to set up a CI/CD pipeline using GitHub Actions.

Chunks
35118b6e (1st chunk of `content/guides/bun/develop.md`)
Title: Developing a Bun Application with Containers
Summary
This section guides you through setting up a development environment for your containerized Bun application. It involves configuring Docker Compose to automatically update running services as you edit your code using Compose Watch. The guide provides steps to clone a sample application, modify the `compose.yml` file with Compose Watch instructions, and test real-time updates by modifying the `server.js` file.