56 views
B!0X

ラズパイ向けにCGO_ENABLEDしながらGoをクロスコンパイルするDockerfile例

ラズパイ向けにcgo_enabledしながらgoをクロスコンパイル
Dockerfile

FROM golang:buster

ARG wdir="/sample"
COPY . ${wdir}
WORKDIR ${wdir}

RUN apt-get update && apt-get upgrade && apt-get -y install g++-arm-linux-gnueabihf && \\
    go install

ENV CC arm-linux-gnueabihf-gcc
ENV GOOS linux
ENV GOARCH arm
ENV GOARM 7
ENV CGO\_ENABLED 1

CMD \["go", "build", "-o", "sample\_bin"\]

docker-compose.yml

version: "3.0"

services:
  compiler:
    build: .
    volumes:
      - .:/sample

使い方

docker-compose up compiler // => sample\_binという名前でクロスコンパイルされる

関連事例

  • プロダクト / Web システム開発 / セキュリティ診断・対策

    事例:マルチプロダクトの共通認証基盤

    業務向けソフトウェアを提供する企業との取り組みです。同社はプロダクト共通の認証基盤の内製を開始しましたが、技術的な難しさから着手直後に断念しました。開発支援会社の KDOT はその開発を引き継ぎ、共通基盤を設計しました。AWS の認証サービスである Amazon Cognito による認証とトークン発行に、Go で実装した独自の認可サービスを組み合わせた構成です。現在は同社の 10近いプロダクトがこの基盤を共通で利用し、新たなプロダクトを追加するたびに認証を再構築する必要がなくなりました。KDOT は統括するチームでこの複雑な基盤を開発し、その上で機能追加と運用保守を数年にわたって継続しています。

開発の相談先をお探しですか。

この記事に関わることについてご相談がある方はお問い合わせください。

KDOT についてお問い合わせ