Improvements to our SDK Docker images

Making it easier to interact with the Intercom API

Back in December, we released our Intercom SDK Docker images to make it easier to interact with our APIs and improve the overall experience of developing with Intercom. We released them in beta as we wanted to see how useful they’d be for making tasks such as setting up environments or debugging issues easier.

Your time, your business

We released these Docker images to help eliminate some of the steps you need to take to work with our SDKs. We’re always looking for ways to make it as quick and easy as possible to integrate with and use Intercom, so that you can focus more of your time on other tasks. Your time, your code, your business.

(That’s also why we recently made it easier to find and use our developer tools by launching a new developer hub, and why we designed new interactive tools to help you install, configure and use the Intercom messenger!)

However, it can be difficult to know in advance which tools will be most helpful so we’ve been excited to see the images being used and to get your feedback on what more we can do to improve them. Like launching a new product, it is ultimately up to your users and consumers to decide whether or not is is a success 👌

Two new updates

When we initially released the Docker images we suggested some ways in which they could be used — primarily getting set up and troubleshooting.

We’ve been pleased to see many of you using them in different ways and have taken on your feedback about how they can be improved to more easily allow for these use cases.

We’ve made two updates based on that feedback:

1. Our Dockerfiles are now public for you to use

We’ve made the Intercom Dockerfiles for the SDKs publicly available, so you can easily suggest changes via GitHub pull requests or just use it locally if you want to customize your own Docker image.

Our aim is to keep the Dockerfiles as simple as possible, but please do keep the suggestions coming so we can continue improving them for you.

2. You can now use your own IDE and push to GitHub easily

The main feedback we received, from both internal and external developers, is that you’d like to use your own IDEs (integrated development environments), be able to manage your code locally and push to GitHub easily. While most of this could be accomplished via the original Docker setup, it wasn’t particularly easy so we’ve worked on that.

First we streamlined our Dockerfiles s0 they all follow a similar layout to make it easier to make updates. Then we made changes so that you can optionally mount a local drive to be used with the Docker container. This would, for example, allow you to mount your local code into a clean environment within the container and do all your development within that environment.

After you’re finished, all that would remain is your code. No new libraries and installations needed on your local environment. No extra setup steps 🎉

We’ve walked through an example of setting this up below so you can try it out.

Let’s try it

You’ll need to have Docker installed to walk through this example — if you haven’t already, please follow the steps here.

This example uses the Intercom Ruby SDK — you’ll want to download it in case you want to suggest a change to the SDK.

Previously, you’d need to ensure you have the correct Ruby version and set up your environment to use RSpec and other requirements. Now, you just need to mount your local directory when you run the Docker command.

Git pull

Then, in your container you’ll see the file in the ‘mount_dir’.

Note that you need to mount it in the ‘mount_dir’ directory, since, if you use another directory your local directory will override the container directory if it exists. The ‘mount_dir’ location is empty and was created to allow you to mount your local directory to this location.

You can then use your local IDE for your development and push to GitHub as normal.

When you remove your container, you’ll still keep all your local code. Any changes made to your local dir will be synced to your container and vice versa.

Also, remember that it does not have to be the SDK that you work on locally — it can be any code that you want to use with Intercom.

Let us know your thoughts

As always, we’ll continue to make improvements based on your feedback and we’d love to hear how you’re using the Docker images — especially if it’s a use case we haven’t covered here.

Plus, now that the Dockerfiles are public, feel free to use that repo to suggest changes as you would with our SDKs. We’ll keep you updated here whenever we make improvements.

Have fun 😀

Take a look at our Developer Hub if you want to learn more about what you can do with the Intercom API.