Dockerfile 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. FROM alpine:3.15.8 AS base
  2. RUN echo '@edge http://dl-cdn.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories \
  3. && echo '@edgecommunity http://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories \
  4. && echo '@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \
  5. && apk add --no-cache --update --upgrade su-exec ca-certificates
  6. FROM base AS openrc
  7. RUN apk add --no-cache openrc \
  8. # Disable getty's
  9. && sed -i 's/^\(tty\d\:\:\)/#\1/g' /etc/inittab \
  10. && sed -i \
  11. # Change subsystem type to "docker"
  12. -e 's/#rc_sys=".*"/rc_sys="docker"/g' \
  13. # Allow all variables through
  14. -e 's/#rc_env_allow=".*"/rc_env_allow="\*"/g' \
  15. # Start crashed services
  16. -e 's/#rc_crashed_stop=.*/rc_crashed_stop=NO/g' \
  17. -e 's/#rc_crashed_start=.*/rc_crashed_start=YES/g' \
  18. # Define extra dependencies for services
  19. -e 's/#rc_provide=".*"/rc_provide="loopback net"/g' \
  20. /etc/rc.conf \
  21. # Remove unnecessary services
  22. && rm -f /etc/init.d/hwdrivers \
  23. /etc/init.d/hwclock \
  24. /etc/init.d/hwdrivers \
  25. /etc/init.d/modules \
  26. /etc/init.d/modules-load \
  27. /etc/init.d/modloop \
  28. # Can't do cgroups
  29. && sed -i 's/\tcgroup_add_service/\t#cgroup_add_service/g' /lib/rc/sh/openrc-run.sh \
  30. && sed -i 's/VSERVER/DOCKER/Ig' /lib/rc/sh/init.sh
  31. CMD ["/sbin/init"]