diff --git a/.dockerignore b/.dockerignore index 2c576cb..9e1b3ee 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,8 @@ Dockerfile mock.Dockerfile +compose.yaml + pprotein data diff --git a/Dockerfile b/Dockerfile index 7538c35..dcb6bc7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,37 +1,37 @@ # -------------------------------------------------- -FROM alpine AS pprotein +FROM golang:alpine AS pprotein -RUN apk add go npm make +RUN apk add npm make -ENV GOPATH /go -ENV PATH $GOPATH/bin:$PATH - -WORKDIR /go/src/app +WORKDIR $GOPATH/src/app COPY . . RUN make build # -------------------------------------------------- -FROM alpine AS tools +FROM golang:alpine AS alp + +RUN go install github.com/tkuchiki/alp/cmd/alp@latest + +# -------------------------------------------------- -RUN apk add go +FROM golang:alpine AS slp -ENV GOPATH /go -RUN go install github.com/tkuchiki/alp/cli/alp@latest +RUN apk add gcc musl-dev RUN go install github.com/tkuchiki/slp/cmd/slp@latest # -------------------------------------------------- FROM alpine -RUN apk add --no-cache bash perl perl-dbd-mysql perl-time-hires graphviz +RUN apk add --no-cache graphviz COPY --from=pprotein /go/src/app/pprotein /usr/local/bin/ COPY --from=pprotein /go/src/app/pprotein-agent /usr/local/bin/ -COPY --from=tools /go/bin/alp /usr/local/bin/ -COPY --from=tools /go/bin/slp /usr/local/bin/ +COPY --from=alp /go/bin/alp /usr/local/bin/ +COPY --from=slp /go/bin/slp /usr/local/bin/ RUN mkdir -p /opt/pprotein WORKDIR /opt/pprotein diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..c1d662b --- /dev/null +++ b/compose.yaml @@ -0,0 +1,13 @@ +services: + mock: + build: + context: . + dockerfile: mock.Dockerfile + pprotein: + build: + context: . + dockerfile: Dockerfile + depends_on: + - mock + ports: + - 9000:9000 diff --git a/mock.Dockerfile b/mock.Dockerfile index 7522845..553ebcb 100644 --- a/mock.Dockerfile +++ b/mock.Dockerfile @@ -1,36 +1,24 @@ # -------------------------------------------------- -FROM alpine AS agent +FROM golang:alpine AS agent -RUN apk add go - -ENV GOPATH /go -ENV PATH $GOPATH/bin:$PATH - -WORKDIR /go/src/app +WORKDIR $GOPATH/src/app COPY . . RUN go build ./cli/pprotein-agent # -------------------------------------------------- -FROM alpine AS mock - -RUN apk add go +FROM golang:alpine AS mock -ENV GOPATH /go -ENV PATH $GOPATH/bin:$PATH - -WORKDIR /go/src/app +WORKDIR $GOPATH/src/app COPY . . RUN go build ./cli/pprotein-mock # -------------------------------------------------- -FROM alpine AS repo - -RUN apk add git +FROM alpine/git AS repo WORKDIR /opt RUN git clone https://github.com/kaz/pprotein.git @@ -45,7 +33,7 @@ RUN mkdir /var/log/mysql COPY --from=agent /go/src/app/pprotein-agent /usr/local/bin/ COPY --from=mock /go/src/app/pprotein-mock /usr/local/bin/ -COPY --from=repo /opt/pprotein/ /opt/pprotein/ +COPY --from=repo /opt/pprotein /opt/pprotein COPY mock/supervisord.ini /etc/supervisor.d/ COPY mock/mysqld.cnf /etc/my.cnf.d/ @@ -53,6 +41,6 @@ COPY mock/nginx.conf /etc/nginx/ ENV DSN "root@unix(/var/run/mysqld/mysqld.sock)/" ENV REQUEST_HOST "127.0.0.1:80" -ENV GIT_REPO_DIR "/opt/pprotein" +ENV PPROTEIN_GIT_REPOSITORY "/opt/pprotein" ENTRYPOINT ["supervisord"]