Dockerを使用してVueを配置します.js+Goプロジェクト
2088 ワード
最近会社はdashboardを作るように要求して、フロントエンドはVueを使います.jsフレームワーク、バックエンドはGo言語で書かれています.Dockerでの導入が決定した際に、多くの問題が発生したことを記録します.
このプロジェクトではAWSのDynamoDBを使用する必要があるため、Dockerのイメージにaws-cliをインストールする必要がありますが、aws-cliはPythonに依存してインストールするしかありません.まずUbuntuベースミラーを実行することから(Centos 7であれば、いろいろなコマンドがありますが、考え方は同じです)、このコンテナに必要なnodejs、Python環境をインストールし、aws-cliをインストールしてawsアカウントの配置を行います.そうすると、awsアカウントを持つミラーができます.具体的な手順は以下の通りです.
これでawsアカウントを持つミラー「aws-node:0.0.1」が作成されました.次に、このミラーに基づいて、nodejsとGOプログラムを起動するための次のミラーを再構築します.Dockerfileファイルを作成するには、次のようにします.
containerで前後のプロセスを前後に開始するため、各DockerfileではCMDコマンドが1つしか許可されていません.そのため、実行する必要があるすべてのコマンドをスクリプトファイル「service.sh」に配置します.次のようにします.
その後は通常のプロセスで、build image(プロジェクトのディレクトリに切り替えます):
containerの再起動:
その後ブラウザに「http://8000」と入力するとページが表示されます!
このプロジェクトではAWSのDynamoDBを使用する必要があるため、Dockerのイメージにaws-cliをインストールする必要がありますが、aws-cliはPythonに依存してインストールするしかありません.まずUbuntuベースミラーを実行することから(Centos 7であれば、いろいろなコマンドがありますが、考え方は同じです)、このコンテナに必要なnodejs、Python環境をインストールし、aws-cliをインストールしてawsアカウントの配置を行います.そうすると、awsアカウントを持つミラーができます.具体的な手順は以下の通りです.
# Ubuntu
docker run -it ubuntu /bin/bash
# apt-get,
apt-get update
apt-get upgrade
# python
apt-get install python3.6
ln -s /usr/bin/python3.6 /usr/bin/python
apt-get install python3-pip
ln -s /usr/bin/pip3 /usr/bin/pip
# aws-cli
pip install awscli --upgrade --user
# vim
apt-get install vim
# aws-cli
vim /root/.bashrc
export PATH=/root/.local/bin:$PATH
source /root/.bashrc
# aws
aws configure
# nodejs
apt-get install nodejs
#
exit
#
docker commit -m"install package" aws-node:0.0.1
これでawsアカウントを持つミラー「aws-node:0.0.1」が作成されました.次に、このミラーに基づいて、nodejsとGOプログラムを起動するための次のミラーを再構築します.Dockerfileファイルを作成するには、次のようにします.
FROM aws-node:0.0.1
RUN mkdir -p /app
WORKDIR /app
COPY . /app
ENV AWS_table=XXX
RUN chmod +x /app/service.sh
EXPOSE 8080 #
EXPOSE 3000 #
CMD /app/service.sh
containerで前後のプロセスを前後に開始するため、各DockerfileではCMDコマンドが1つしか許可されていません.そのため、実行する必要があるすべてのコマンドをスクリプトファイル「service.sh」に配置します.次のようにします.
#!/bin/sh
curl -o- -L https://yarnpkg.com/install.sh | bash # yarn
$HOME/.yarn/bin/yarn install # vue
env GIN_MODE=release ./service > service.log & # ( go )
$HOME/.yarn/bin/yarn serve --host 0.0.0.0 # ( --host 0.0.0.0)
その後は通常のプロセスで、build image(プロジェクトのディレクトリに切り替えます):
docker build -t dashboard:0.0.1 .
containerの再起動:
docker run -d -p 8000:8080 -p 3000:3000 dashboard:0.0.1
その後ブラウザに「http://8000」と入力するとページが表示されます!