1

I have a dockerfile just contains:

FROM openjdk:8-jdk-alpine

RUN addgroup -S -g 9999 jboss && adduser -S -G jboss -u 999 jboss \
    && mkdir -p /opt/jboss && chgrp jboss /opt/jboss && chmod 775 /opt/jboss \
    && addgroup -g 70 -S postgres \
    && adduser -u 70 -S -D -G postgres -H -h /var/lib/postgresql -s /bin/sh postgres \
    && mkdir -p /var/lib/postgresql \
    && chown -R postgres:postgres /var/lib/postgresql

When I run

docker build . 

I got

addgroup: group 'postgres' in use
The command '/bin/sh -c addgroup -S -g 9999 jboss && adduser -S -G jboss -u 999 jboss && mkdir -p /opt/jboss && chgrp jboss /opt/jboss && chmod 775 /opt/jboss     && addgroup -g 70 -S postgres    && adduser -u 70 -S -D -G postgres -H -h /var/lib/postgresql -s /bin/sh postgres    && mkdir -p /var/lib/postgresql     && chown -R postgres:postgres /var/lib/postgresql' returned a non-zero code: 1

When I replace postgres with another value

addgroup -g 70 -S blabla

I got

addgroup: gid '70' in use
The command '/bin/sh -c addgroup -S -g 9999 jboss && adduser -S -G jboss -u 999 jboss && mkdir -p /opt/jboss && chgrp jboss /opt/jboss && chmod 775 /opt/jboss     && addgroup -g 70 -S blabla  && adduser -u 70 -S -D -G postgres -H -h /var/lib/postgresql -s /bin/sh postgres    && mkdir -p /var/lib/postgresql     && chown -R postgres:postgres /var/lib/postgresql' returned a non-zero code: 1

When I completely remove addgroup and adduser postgres, it works perfectly. I do not know whether I'm doing wrong somewhere. Could you help to explain to me why this happen?

PS: My host computer is running postgresql, can it effect to the build of docker? I think it's not related, right?

1 Answer 1

2

The postgres group and user already exist in Alpine Linux, according to https://git.alpinelinux.org/alpine-baselayout/tree/group (linked to from https://wiki.alpinelinux.org/wiki/Setting_up_a_new_user#addgroup).

You can also prove this to yourself by running the base image as the postgres user:

$ docker run --rm -it --user postgres:postgres openjdk:8-jdk-alpine id
uid=70(postgres) gid=70(postgres)

or looking at the contents of /etc/passwd in the base image:

root:x:0:0:root:/root:/bin/ash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/usr/lib/news:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin
operator:x:11:0:operator:/root:/bin/sh
man:x:13:15:man:/usr/man:/sbin/nologin
postmaster:x:14:12:postmaster:/var/spool/mail:/sbin/nologin
cron:x:16:16:cron:/var/spool/cron:/sbin/nologin
ftp:x:21:21::/var/lib/ftp:/sbin/nologin
sshd:x:22:22:sshd:/dev/null:/sbin/nologin
at:x:25:25:at:/var/spool/cron/atjobs:/sbin/nologin
squid:x:31:31:Squid:/var/cache/squid:/sbin/nologin
xfs:x:33:33:X Font Server:/etc/X11/fs:/sbin/nologin
games:x:35:35:games:/usr/games:/sbin/nologin
postgres:x:70:70::/var/lib/postgresql:/bin/sh   # Here I am!
cyrus:x:85:12::/usr/cyrus:/sbin/nologin
vpopmail:x:89:89::/var/vpopmail:/sbin/nologin
ntp:x:123:123:NTP:/var/empty:/sbin/nologin
smmsp:x:209:209:smmsp:/var/spool/mqueue:/sbin/nologin
guest:x:405:100:guest:/dev/null:/sbin/nologin
nobody:x:65534:65534:nobody:/:/sbin/nologin
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.