Portfolioサイトのアップロード
以前に作成したノード私はjsベースの製品組合せサイトを持っています.修正してjenkinsに登録して使用したいです.
🐋Dockerネットワークの作成
🐋Dockerネットワークの作成
フロントプロジェクトはできるだけawsに行きます.まずネットワークを再設定します.docker network create --gateway 172.18.0.1 --subnet 172.18.0.0/16 portfolio
🐋Dockerfileの作成 FROM node:slim
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . /app
EXPOSE 3000
CMD [ "npm", "run", "start"]
dockerはjavaとは異なり、jarだけを投げ出すのではなく、ソースコード全体を取得する必要があります.したがってpackageを移動してインストールし、すべてのソースコードをコピーするしかありません.node_modules
package-lock.json
また、nodeは初期インストール時に生成されたファイルで、これらのファイルを一緒に移動するとエラーが発生します..dockerignore
ファイルをCOPY時に除外するように設定します.
docker build -t ililil9482/portfolio:1.0 .
画像が生成され、正常に動作していることを確認できます.
以前はhubにファイルをプッシュするのはjenkinsで行われていましたがawsとwindowの間で衝突は起こらないのでlocalからhubに直接プッシュしました.
docker push ililil9482/portfolio:1.0
波止場まで押す
正常に上昇した.
🐋docker-compose.ymlの作成
version: '3.7'
services:
portfolio:
image: "ililil9482/portfolio:1.0"
container_name: portfolio
expose:
- 3000
networks:
default:
external:
name: portfolio
aws
サーバにymlファイルを作成します.
🤵♂️Jenkins設定
awsキーを追加します.
awsの名前で追加します.pipeline {
agent any
stages {
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /project/portfolio && sudo docker-compose down',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
stage('Pull') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'sudo docker pull ililil9482/portfolio:1.0',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
stage('Up') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /project/portfolio && sudo docker-compose up -d',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
}
}
パイプラインの作成後:
コンテナが稼働していることを確認できます.
追加Nginx FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 80
Dockerfileを作成します.user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
location / {
proxy_pass http://portfolio:3000;
}
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
}
nginx.confファイルを作成することもできます.version: '3.7'
services:
nginx:
container_name: nginx
image: my-nginx:1.0
ports:
- 80:80
networks:
default:
external:
name: portfolio
最後のdocker-composeymlファイルを作成して実行します.
http://3.38.251.117/
接続が良好であることが確認できます.
Reference
この問題について(Portfolioサイトのアップロード), 我々は、より多くの情報をここで見つけました
https://velog.io/@ililil9482/Portfolio-사이트-올리기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
docker network create --gateway 172.18.0.1 --subnet 172.18.0.0/16 portfolio
FROM node:slim
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . /app
EXPOSE 3000
CMD [ "npm", "run", "start"]
dockerはjavaとは異なり、jarだけを投げ出すのではなく、ソースコード全体を取得する必要があります.したがってpackageを移動してインストールし、すべてのソースコードをコピーするしかありません.node_modules
package-lock.json
また、nodeは初期インストール時に生成されたファイルで、これらのファイルを一緒に移動するとエラーが発生します..dockerignore
ファイルをCOPY時に除外するように設定します.docker build -t ililil9482/portfolio:1.0 .
画像が生成され、正常に動作していることを確認できます.以前はhubにファイルをプッシュするのはjenkinsで行われていましたがawsとwindowの間で衝突は起こらないのでlocalからhubに直接プッシュしました.
docker push ililil9482/portfolio:1.0
波止場まで押す正常に上昇した.
🐋docker-compose.ymlの作成
version: '3.7'
services:
portfolio:
image: "ililil9482/portfolio:1.0"
container_name: portfolio
expose:
- 3000
networks:
default:
external:
name: portfolio
aws
サーバにymlファイルを作成します.🤵♂️Jenkins設定
awsキーを追加します.
awsの名前で追加します.pipeline {
agent any
stages {
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /project/portfolio && sudo docker-compose down',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
stage('Pull') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'sudo docker pull ililil9482/portfolio:1.0',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
stage('Up') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /project/portfolio && sudo docker-compose up -d',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
}
}
パイプラインの作成後:
コンテナが稼働していることを確認できます.
追加Nginx FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 80
Dockerfileを作成します.user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
location / {
proxy_pass http://portfolio:3000;
}
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
}
nginx.confファイルを作成することもできます.version: '3.7'
services:
nginx:
container_name: nginx
image: my-nginx:1.0
ports:
- 80:80
networks:
default:
external:
name: portfolio
最後のdocker-composeymlファイルを作成して実行します.
http://3.38.251.117/
接続が良好であることが確認できます.
Reference
この問題について(Portfolioサイトのアップロード), 我々は、より多くの情報をここで見つけました
https://velog.io/@ililil9482/Portfolio-사이트-올리기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
pipeline {
agent any
stages {
stage('Down') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /project/portfolio && sudo docker-compose down',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
stage('Pull') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'sudo docker pull ililil9482/portfolio:1.0',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
stage('Up') {
steps {
sshPublisher(publishers: [
sshPublisherDesc(configName: 'aws',
transfers: [
sshTransfer(cleanRemote: false,
excludes: '',
execCommand: 'cd /project/portfolio && sudo docker-compose up -d',
execTimeout: 120000,
flatten: false,
makeEmptyDirs: false,
noDefaultExcludes: false,
patternSeparator: '[, ]+',
remoteDirectory: '',
remoteDirectorySDF: false,
removePrefix: '',
sourceFiles: '')
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false)
])
}
}
}
}
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 80
Dockerfileを作成します.user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
location / {
proxy_pass http://portfolio:3000;
}
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
}
nginx.confファイルを作成することもできます.version: '3.7'
services:
nginx:
container_name: nginx
image: my-nginx:1.0
ports:
- 80:80
networks:
default:
external:
name: portfolio
最後のdocker-composeymlファイルを作成して実行します.http://3.38.251.117/
接続が良好であることが確認できます.
Reference
この問題について(Portfolioサイトのアップロード), 我々は、より多くの情報をここで見つけました https://velog.io/@ililil9482/Portfolio-사이트-올리기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol