How to configure docker-compose.yml to up a container as root

DockerDocker Compose

Docker Problem Overview


I'm trying to connect two containers with a docker-compose-yml, but it isn't working. This is my docker-compose.yml file:

version: "3"
services:
    datapower:
        build: .
        ports:
            - "9090:9090"
        depends_on:
            - db
    db:
        image: "microsoft/mssql-server-linux:2017-latest"
        environment:
            SA_PASSWORD: "your_password"
            ACCEPT_EULA: "Y"
        ports:
        - "1433:1433"

When I make:

> docker-compose up

This up my two containers. Then I stop one container and then I run the same container stoped independiently like:

> docker-compose run -u root --name nameofcontainer 'name of container named in docker-compose.yml'

With this, the connection of the containers works. Exists a method to configure my docker-compose.yml to connect my containers like root without stop a container and run independently?

Docker Solutions


Solution 1 - Docker

Update:

There exists the user property that can be set in the compose file. This is documented in docker-compose file reference.

...
services:
    datapower:
        build: .
        user: root
        ports:
            - "9090:9090"
        depends_on:
            - db
...

Solution 2 - Docker

Setting both a User AND a Group in docker-compose.yml:

Discovered another way to set not only the user but also the group in a docker-compose.yml file which is NOT documented in the Docker Compose File Reference @yamenk helpfully provides in the accepted answer.

I needed to raise a container expressly setting both a user AND a group and found that the user: parameter in docker-compose.yml can be populated as a UID:GID mapping delimited by a colon.

Below is a snippet from my docker-compose.yml file where this form was tested and found to work correctly:

services:
 zabbix-agent:
  image: zabbix/zabbix-agent2:ubuntu-6.0-latest
  container_name: DockerHost1-zabbix-agent2
  user: 0:0
<SNIP>

Reference:

https://github.com/zabbix/zabbix-docker/issues/710

Hope this saves others wasted cycles looking for this!

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCarlos AndresView Question on Stackoverflow
Solution 1 - DockeryamenkView Answer on Stackoverflow
Solution 2 - DockerF1LinuxView Answer on Stackoverflow