LoginSignup
3
2

More than 5 years have passed since last update.

circleciでのdocker multi stage builds ではまった話

Last updated at Posted at 2017-05-30

はじめに

メモ的な

やろうとしたこと

circleci version2 を利用して、docker multi stage builds でビルドしようとしました。

結果

できませんでした!(2017/05/29時点) ※ docker for mac の edge ならできます!

内容としては、こんな感じです。

  • golangアプリケーションのコンテナビルドをしたい
  • 軽量化するために multi stage builds を利用
  • circleci 2 でのベースイメージは docker:17.05.0-ce-git
  • エラーが出る
    • Error parsing reference: "golang:1.8.3 as alias" is not a valid repository/tag: invalid reference format

理由

色々調べたのですが、「最新のdocker(dege)使えばいけるよー」みたいな記事ばっかだったのですが、こんな記事を発見しました。

Multi-Stage builds on docker hub

Docker HubとDocker Cloudの自動ビルドサービスは、この機能が安定したチャネルに卒業した時点でマルチステージビルドのサポートを追加する予定です(現在、17.06リリースの6月をターゲットにしています)。

これってつまり、docker社が提供する docker実行可能 docker イメージでの multi stage builds は 17.06からできるようになりますよ(17.05ではできませんよ)ということなんでしょうか。。。

結果

docker hub ですらサポートされていないのだから、circleci でサポートされてないよなーなんて思いながら、今まで通り Dockerfile を分けてビルド結果からアプリケーション実行ファイルを docker cp してー。。。とやりました。
(これでもイメージの軽量化はできるので問題ないのですが・・・)

終わりに

いやいや、circleci で multi stage builds できるから!など情報ありましたらコメントいただけると嬉しいです!

参考

Use multi-stage builds

追記

できるみたいですね!

jobs:
  build:
    steps:
      - setup_remote_docker:
          version: 17.05.0-ce

こいつが肝なようでした。

jobs:
  build:
    docker:
      - image: docker:17.07.0-ce-git

ここで指定すればOKだと思っていましたが、job の default image が 17.03 のようで、setup_remote_docker で指定してあげないとだめみたいです。

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2