# Upgrading ODK Central from 1.1.1 to 1.3.3

**URL:** <https://forum.getodk.org/t/upgrading-odk-central-from-1-1-1-to-1-3-3/35735>\
**Category:** Support\
**Tags:** odk-central\
**Created:** [November 11, 2021, 2:28pm UTC](https://forum.getodk.org/t/upgrading-odk-central-from-1-1-1-to-1-3-3/35735 "2021-11-11T14:28:23Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Odil](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/odil/32/27190_2.png) [@Odil](https://forum.getodk.org/u/Odil)\
**Post date:** [November 11, 2021, 2:28pm UTC](https://forum.getodk.org/t/upgrading-odk-central-from-1-1-1-to-1-3-3/35735/1 "2021-11-11T14:28:23Z")

</div>

Recently I started to upgrade my ODK Server from v 1.1.1 up to 1.3.3  
According to documentation [Upgrading to Central v1.3](https://docs.getodk.org/central-upgrade/#upgrading-to-central-v1-3) one need first upgrade docker-compose to v1.28.3 or later. While running the cURL I got the error

```auto
...failed writing body.

```

According to [https://stackoverflow.com/a/28879552](https://stackoverflow.com/a/28879552) the piped program closes the read pipe before the previous program is finished writing the whole page so the solution is adding `| tac | tac |` before the `-o` so use following code if you face the same problem

```auto
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" | tac | tac | -o /usr/local/bin/docker-compose

```

Hope this helps those who face the problems with upgrading

---

<div class="post-metadata">

**Author:** ![yanokwa](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/yanokwa/32/1695_2.png) [@yanokwa](https://forum.getodk.org/u/yanokwa)\
**Post date:** [November 11, 2021, 4:48pm UTC](https://forum.getodk.org/t/upgrading-odk-central-from-1-1-1-to-1-3-3/35735/2 "2021-11-11T16:48:17Z")

</div>

The docker-compose upgrade instructions are from [https://docs.docker.com/compose/install/#install-compose-on-linux-systems](https://docs.docker.com/compose/install/#install-compose-on-linux-systems). I'm sure they would appreciate it if you [filed an issue](https://github.com/docker/docker.github.io/issues/new?body=File:%20%5Bcompose/install.md%5D(https://docs.docker.com/compose/install/)) to request changes.

---

<div class="post-metadata">

**Author:** ![yanokwa](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/yanokwa/32/1695_2.png) [@yanokwa](https://forum.getodk.org/u/yanokwa)\
**Post date:** [November 11, 2021, 6:31pm UTC](https://forum.getodk.org/t/upgrading-odk-central-from-1-1-1-to-1-3-3/35735/3 "2021-11-11T18:31:46Z")

</div>

I think the likely root cause is that ` /usr/local/bin/docker-compose` already exists, so I'd do this first before the curl command.

```auto
rm /usr/local/bin/docker-compose
rm /usr/bin/docker-compose

```

---

<div class="post-metadata">

**Author:** ![Odil](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/odil/32/27190_2.png) [@Odil](https://forum.getodk.org/u/Odil)\
**Post date:** [November 12, 2021, 5:24am UTC](https://forum.getodk.org/t/upgrading-odk-central-from-1-1-1-to-1-3-3/35735/4 "2021-11-12T05:24:03Z")

</div>

> [@yanokwa](#):
>
> ```auto
> rm /usr/local/bin/docker-compose
> rm /usr/bin/docker-compose
> 
> ```

You're right, deleting the `docker-compose` from the `bin` solves the problem.

---

<div class="post-metadata">

**Author:** ![Odil](https://getodk.b-cdn.net/user_avatar/forum.getodk.org/odil/32/27190_2.png) [@Odil](https://forum.getodk.org/u/Odil)\
**Post date:** [November 12, 2021, 12:00pm UTC](https://forum.getodk.org/t/upgrading-odk-central-from-1-1-1-to-1-3-3/35735/5 "2021-11-12T12:00:23Z")

</div>

**Additional note**.  
If you are using the basic option in DigitalOcean (1GB CPU and 1GB Memory) most probably you'll face a problem with building an image (`docker-compose build`). The solution is to resize your droplet in DigitalOcean (I tested with 2GB CPU and 2GB Memory)

 ![image](https://getodk.b-cdn.net/uploads/default/original/3X/7/a/7a01b7c18e7b9c23c613c9709a099bea1fc626b1.png)  
Then try `docker-compose build`  
When you have successfully built the image you can continue the [upgrading](https://docs.getodk.org/central-upgrade/#upgrading-central) :

> ...Next, you need to do a little bit of maintenance. Run docker `prune`. If it thinks prune is not a docker command, run `docker image prune` instead. You'll be asked to confirm the removal of all dangling images. Agree by typing the letter `y` and pressing Enter.
> 
> Finally, restart the running server to pick up the changes: `docker-compose stop` and `docker-compose up -d`

When you see that your server is functioning you can resize back your Droplet.

Hope this helps.
