1414# See the License for the specific language governing permissions and
1515# limitations under the License.
1616
17- FROM alpine
17+ FROM alpine as builder
1818
19- RUN apk update
20- RUN apk add git cmake make g++ grpc-dev re2-dev protobuf-dev c-ares-dev
19+ RUN apk update && apk add git cmake make g++ grpc-dev protobuf-dev
2120
2221ARG OPENTELEMETRY_CPP_VERSION=1.12.0
2322
2423RUN git clone https://github.com/open-telemetry/opentelemetry-cpp \
25- && cd opentelemetry-cpp/ \
26- && git checkout tags/v${OPENTELEMETRY_CPP_VERSION} -b v${OPENTELEMETRY_CPP_VERSION} \
27- && mkdir build \
28- && cd build \
29- && cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
30- -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \
31- -DWITH_EXAMPLES=OFF -DWITH_OTLP_GRPC=ON \
32- && make -j$(nproc || sysctl -n hw.ncpu || echo 1) install && cd ../.. && rm -rf opentelemetry-cpp
24+ && cd opentelemetry-cpp/ \
25+ && git checkout tags/v${OPENTELEMETRY_CPP_VERSION} -b v${OPENTELEMETRY_CPP_VERSION} \
26+ && mkdir build \
27+ && cd build \
28+ && cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
29+ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \
30+ -DWITH_EXAMPLES=OFF -DWITH_OTLP_GRPC=ON \
31+ && make -j$(nproc || sysctl -n hw.ncpu || echo 1) install && cd ../..
3332
3433COPY . /currencyservice
3534
@@ -38,5 +37,11 @@ RUN cd /currencyservice \
3837 && cmake .. \
3938 && make -j$(nproc || sysctl -n hw.ncpu || echo 1) install
4039
40+
41+ FROM alpine as release
42+
43+ RUN apk update && apk add grpc-dev protobuf-dev
44+ COPY --from=builder /usr/local /usr/local
45+
4146EXPOSE ${CURRENCY_SERVICE_PORT}
4247ENTRYPOINT ./usr/local/bin/currencyservice ${CURRENCY_SERVICE_PORT}
0 commit comments