前提
タイトルの通りです。
Docker内でChromeをインストールしてGoで使用しているのですが、
Goの環境構築と同様のDockerFileにChromeをインストールする記述があるので、
Goのプログラムを修正した後にdocker-compose buildを行うと、
Chromeをインストールするwgetも同時に走り、
ここがボトルネックになってbuildに時間が掛かってしまいます。
アプリケーションをインストールする部分だけbuildの際に、
毎回走らない様にするにはどうすれば良いのでしょう?
こういったケースは一般的にはどの様に対応されているんですかね?
開発の最中に動作確認に時間がかかるので困っています。
何か分かる方がいればよろしくお願いします。
FROM golang:latest COPY ./go/app /app/go # 切り替え WORKDIR /app/go/handler RUN rm go.mod # 初期化 RUN go mod init github.com/XXX/XXX/go/app/handler # モジュール取得 # RUN go get github.com/sclevine/agouti \ # && go get github.com/labstack/echo/v4 \ # && go get github.com/labstack/echo/v4/middleware \ # && go get github.com/joho/godotenv \ # && go get github.com/lib/pq \ # && go get github.com/jinzhu/gorm RUN go mod tidy RUN rm handler # ビルド RUN go build -o handler . RUN touch handler RUN pwd RUN ls -lt # 切り替え WORKDIR /app/go RUN rm go.mod # 初期化 RUN go mod init github.com/XXX/XXX # モジュール取得 # RUN go get github.com/XXX/XXX/go/app/handler RUN go mod tidy RUN rm main # ビルド RUN go build -o main . RUN touch main # unzip取得 RUN apt-get update && apt-get install -y unzip # chrome取得 RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add \ && wget http://dl.google.com/linux/deb/pool/main/g/google-chrome-unstable/google-chrome-unstable_93.0.4577.18-1_amd64.deb \ && apt-get install -y -f ./google-chrome-unstable_93.0.4577.18-1_amd64.deb # chromedriver取得 ADD https://chromedriver.storage.googleapis.com/93.0.4577.15/chromedriver_linux64.zip /usr/local/go/bin/ RUN cd /usr/local/go/bin/ \ && unzip chromedriver_linux64.zip RUN pwd RUN ls -lt CMD ["/app/go/main"]
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。