hashicorp / hashicorp/packer-plugin-docker
Add multi-stage builds for Docker
- Dominant language
- Go
- Stars
- 40
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
_This issue was originally opened by @finferflu as hashicorp/packer#9462. It was migrated here as a result of the [Packer plugin split](https://github.com/hashicorp/packer/issues/8610#issuecomment-770034737). The original body of the issue is below._
Please search the existing issues for relevant feature requests, and use the
reaction feature
(https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/)
to add upvotes to pre-existing requests.
#### Feature Description
Add the ability to create [multi-stage builds](https://docs.docker.com/develop/develop-images/multistage-build/).
#### Use Case(s)
This is vital to keep the image sizes down, e.g. I have a Dockerfile which I can't translate to Packer:
```dockerfile
FROM prom/prometheus:v2.19.0
FROM alpine:3.10.2
RUN apk add gettext
COPY --from=0 /bin/prometheus /bin/prometheus
RUN mkdir -p /prometheus /etc/prometheus && \
chown -R nobody:nogroup etc/prometheus /prometheus
# Run envsubst before Prometheus.
RUN echo $'#!/bin/sh\n\
envsubst < /etc/prometheus/orig.yml > /etc/prometheus/prometheus.yml && \
exec /bin/prometheus "$@"' \
> /etc/prometheus/entrypoint.sh
RUN chmod +x /etc/prometheus/entrypoint.sh
ENTRYPOINT ["/etc/prometheus/entrypoint.sh"]
CMD [ "--config.file=/etc/prometheus/prometheus.yml", \
"--storage.tsdb.path=/prometheus" ]
USER nobody
EXPOSE 9090
VOLUME [ "/prometheus" ]
WORKDIR /prometheus
# This is your local prometheus.yml.
ADD prometheus.yml /etc/prometheus/orig.yml
```
Contributor guide
Assessment
This issue has not been assessed yet.