# multi-stage buildを使う
# golangからnodeイメージにgoバイナリを移すほうが簡単
FROM golang:@@GO_VERSION@@-alpine as gobuilder
FROM node:@@NODE_VERSION@@-alpine
ENV SLS_VERSION=@@SLS_VERSION@@
# golangから必要なものを取得
COPY --from=gobuilder /usr/local/go /usr/local/go
# CI用コマンドの追加
RUN apk add --no-cache jq git make ca-certificates
# PythonとAWS-CLIのインストール
# from frolvlad/alpine-python3
RUN apk add --no-cache python3 && \
python3 -m ensurepip && \
rm -r /usr/lib/python*/ensurepip && \
pip3 install --upgrade pip setuptools && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
rm -r /root/.cache && \
pip3 install awscli
# 環境変数の設定
# yarn global binのPATHを通す
ENV TZ=Asia/Tokyo
ENV HOME=/home/node
ENV PATH=/home/node/.yarn/bin:$PATH
# 一般ユーザに切り替え
USER node
WORKDIR $HOME
# Go用の環境変数のセット
ENV GOPATH=/home/node/go
ENV PATH=$GOPATH/bin:/usr/local/go/bin:$PATH
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin"
# Go言語ビルド用ツールインストール
RUN go get -u github.com/golang/dep/cmd/dep && \
go get -u github.com/golang/lint/golint
# serverlessコマンド追加
RUN yarn global add serverless@${SLS_VERSION}
CMD ["/bin/sh"]
Content type
Image
Digest
Size
346.8 MB
Last updated
about 8 years ago
docker pull gemcook/sls