Commit e9026e91 by xiawei

ali-oss

parent bd8638a9
FROM registry.cn-hangzhou.aliyuncs.com/open_images/node12.13.1-pm2-zabbix
FROM alpine AS builder
WORKDIR /home/app
RUN apk add --no-cache --update nodejs yarn
COPY package.json yarn.lock ./
RUN yarn install --registry=https://registry.yarnpkg.com
FROM registry.cn-hangzhou.aliyuncs.com/open_images/node12.13.1-pm2-zabbix
ADD ./ /var/www/web_live
EXPOSE 3000
ENV HOST 0.0.0.0
ENV TZ Asia/Shanghai
WORKDIR "/var/www/web_live"
RUN chmod +x start.sh && \
yarn install && \
yarn cross-env run_server=production nuxt build
WORKDIR /var/www/web_live
COPY --from=builder /home/app/package.json ./package.json
COPY --from=builder /home/app/node_modules ./node_modules
RUN yarn cross-env run_server=production nuxt build
RUN yarn cross-env run_server=production node upload.js
RUN rm -rf assets components layouts middleware pages plugins store .eslintrc.js .gitignore build.yml pDockerfile README.md pStart.sh
EXPOSE 3000
RUN chmod +x start.sh
ENTRYPOINT ["./start.sh"]
......@@ -23,4 +23,7 @@ export default {
max-width: 100%;
}
}
.ql-container.ql-snow {
border: 0;
}
</style>
......@@ -23,4 +23,7 @@ export default {
max-width: 100%;
}
}
.ql-container.ql-snow {
border: 0;
}
</style>
......@@ -30,6 +30,7 @@ module.exports = {
DEF_DOMAIM: '//apiliveroom.dev.guangdianyun.tv/v1',
DEF_OSS: '//static-pro.guangdianyun.tv',
DEF_AODIANYUN: '//cdn.aodianyun.com',
DEF_S_AODIANYUN: '//cdn.aodianyun.com',
X_CA_STAGE: '',
private: false,
sentryOptions
......
module.exports = {
DEF_DOMAIM: '//cgateway.aodiansoft.com:8680/v1',
DEF_OSS: '//eos-beijing-4.cmecloud.cn/resource',
DEF_AODIANYUN: '//cdn.aodiansoft.com:8680',
DEF_AODIANYUN: 'http://cdn.aodiansoft.com:8680',
DEF_S_AODIANYUN: 'https://cdn.aodianyun.com:843',
X_CA_STAGE: '',
private: true,
sentryOptions: {}
......
const WebpackAliOSSPlugin = require('webpack-oss');
const time = WebpackAliOSSPlugin.getFormat('YYMMDD');
const path = require('path');
const { version } = require('./package.json');
const BASE_URL = '/live/';
const globalEnv = require('./config/global.js');
const modeEnv = process.env.mode ? require(`./config/${process.env.mode}.js`) : {};
const env = { ...globalEnv, ...modeEnv };
const { DEF_AODIANYUN, DEF_OSS, X_CA_STAGE, sentryOptions } = env;
const { DEF_S_AODIANYUN, DEF_OSS, X_CA_STAGE, sentryOptions } = env;
const BUILD_DIST = X_CA_STAGE || 'PROD';
export default {
......@@ -52,9 +49,9 @@ export default {
],
link: [{ rel: 'stylesheet', href: `${DEF_OSS}/static/css/reset.css` }],
script: [
{ src: `${DEF_AODIANYUN}/static/jquery/jquery-1.11.1.min.js` },
{ src: `${DEF_AODIANYUN}/mps/v1/hlsplayer.js` },
{ src: `${DEF_AODIANYUN}/dms/rop_client.js` },
{ src: `${DEF_S_AODIANYUN}/static/jquery/jquery-1.11.1.min.js` },
{ src: `${DEF_S_AODIANYUN}/mps/v1/hlsplayer.js` },
{ src: `${DEF_S_AODIANYUN}/dms/rop_client.js` },
{ src: '//res.wx.qq.com/open/js/jweixin-1.0.0.js' },
{ src: `${DEF_OSS}/static/js/web-animations.min.js` }
]
......@@ -107,30 +104,13 @@ export default {
*/
// publicPath: `/${BUILD_DIST.toLowerCase()}/`,
publicPath: process.env.run_server
? `//static-${process.env.run_server}.guangdianyun.tv/live/${time}`
? `//static-${process.env.run_server}.guangdianyun.tv/live/${version}`
: `/${BUILD_DIST.toLowerCase()}/`,
extend(config, ctx) {
// console.log(ctx);
},
analyze: false,
maxChunkSize: 300000,
plugins:
process.env.NODE_ENV === 'production' && process.env.run_server
? [
new WebpackAliOSSPlugin({
accessKeyId: 'LTAIIgVna8MHelpI',
accessKeySecret: 'fqQNjEGxww3ZZJ9GbUfNp2yzsWUcnl',
region: 'oss-cn-hangzhou',
bucket: `guangdianyun-static-${process.env.run_server}`,
prefix: 'live',
limit: 100, // 备份最近 3 个版本的 oss 文件
format: time,
exclude: [/.*\.html$/], // 或者 /.*\.html$/,排除.html文件的上传
deleteAll: false, // 优先匹配 format 配置项
output: path.resolve(__dirname, './nuxt-dist/dist/client'),
local: true // 上传打包输出目录里的文件
})
]
: []
plugins: []
}
};
......@@ -31,6 +31,7 @@
"@nuxtjs/component-cache": "^1.1.5",
"@nuxtjs/router": "^1.5.0",
"@nuxtjs/sentry": "^4.1.2",
"ali-oss": "^6.10.0",
"alife-logger": "^1.8.3",
"clipboard": "^2.0.6",
"cookieparser": "^0.1.0",
......@@ -56,7 +57,6 @@
"eslint-plugin-vue": "^6.0.1",
"less": "^3.9.0",
"less-loader": "^5.0.0",
"path": "^0.12.7",
"webpack-oss": "^2.1.6"
"path": "^0.12.7"
}
}
const { version } = require('./package.json');
const OSS = require('ali-oss');
const fs = require('fs');
const path = require('path');
const PUBLIC_PATH = path.join(__dirname, '/');
const client = new OSS({
accessKeyId: 'LTAIIgVna8MHelpI',
accessKeySecret: 'fqQNjEGxww3ZZJ9GbUfNp2yzsWUcnl',
bucket: `guangdianyun-static-${process.env.run_server}`,
region: 'oss-cn-hangzhou'
});
/**
*获取文件目录并删除
* @param {*} dir //文件目录
*/
async function deleteDir(dir) {
const result = await client.list({
prefix: dir + '/',
delimiter: '/'
});
if (result.objects) {
const aa = [];
result.objects.forEach(function(obj) {
aa.push(obj.name);
});
try {
await client.deleteMulti(aa, {
quiet: true
});
console.log('删除成功');
} catch (e) {
console.log('文件删除失败', e);
}
}
}
/**
* 遍历文件夹递归上传
* @param {path} src 本地路径
* @param {string} dist oos文件夹名 www|kouzi
*/
function addFileToOSSSync(src, dist) {
const docs = fs.readdirSync(src);
docs.forEach(function(doc) {
const _src = src + '/' + doc;
const _dist = dist + '/' + doc;
const st = fs.statSync(_src);
// 判断是否为文件
if (st.isFile() && doc !== '.DS_Store') {
putOSS(_src, _dist);
}
// 如果是目录则递归调用自身
else if (st.isDirectory()) {
addFileToOSSSync(_src, _dist);
}
});
}
/**
*单个文件上传至oss
*/
async function putOSS(src, dist) {
try {
await client.put('/' + dist, src);
console.log(`上传成功${dist}`);
} catch (e) {
console.log('上传失败'.e);
}
}
/**
*上传文件启动
*@param {string} dirName 将要上传的文件名
*/
async function upload(dirName) {
try {
await addFileToOSSSync(PUBLIC_PATH + './nuxt-dist/dist/client', dirName);
console.log(dirName + '上传oss成功');
} catch (err) {
console.log(dirName + '上传oss成功失败', err);
}
}
upload(`/live/${version}`);
......@@ -1770,7 +1770,7 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
ali-oss@^6.1.1:
ali-oss@^6.10.0:
version "6.10.0"
resolved "https://registry.yarnpkg.com/ali-oss/-/ali-oss-6.10.0.tgz#9b6d61586259851d3f7e33ae9e2ed58e77e5257e"
integrity sha512-kWguelLe4QZCvqisN3i9i+kyaG2JCj+4AqXbc+HKJ3b4WYwkn2hS9INJHtrUSlo95yn9FKSNXwTAfLMrXyQlnA==
......@@ -1819,7 +1819,7 @@ ansi-align@^3.0.0:
dependencies:
string-width "^3.0.0"
ansi-colors@^3.0.0, ansi-colors@^3.2.4:
ansi-colors@^3.0.0:
version "3.2.4"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
......@@ -1831,13 +1831,6 @@ ansi-escapes@^4.2.1:
dependencies:
type-fest "^0.11.0"
ansi-gray@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE=
dependencies:
ansi-wrap "0.1.0"
ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
......@@ -1883,11 +1876,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
"@types/color-name" "^1.1.1"
color-convert "^2.0.1"
ansi-wrap@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
any-promise@^1.0.0, any-promise@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
......@@ -2747,11 +2735,6 @@ color-string@^1.5.2:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
color@^3.0.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
......@@ -4146,16 +4129,6 @@ extract-css-chunks-webpack-plugin@^4.7.5:
webpack-external-import "^2.2.4"
webpack-sources "^1.1.0"
fancy-log@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7"
integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==
dependencies:
ansi-gray "^0.1.1"
color-support "^1.1.3"
parse-node-version "^1.0.0"
time-stamp "^1.0.0"
fast-deep-equal@^3.1.1:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
......@@ -6584,11 +6557,6 @@ parse-json@^4.0.0:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
parse-node-version@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
parse-path@^4.0.0:
version "4.0.2"
resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.2.tgz#ef14f0d3d77bae8dd4bc66563a4c151aac9e65aa"
......@@ -8777,11 +8745,6 @@ time-fix-plugin@^2.0.6:
resolved "https://registry.yarnpkg.com/time-fix-plugin/-/time-fix-plugin-2.0.6.tgz#3210121d269b475a7e7661766e682bd768ba1ced"
integrity sha512-2cjjg3672ppNm/uKhHAoCFp1ItEAiH+xJOjO9WGIF8hXuxPAJ2adfYgFiyooVbsOb948c+WrRh+edxFUMxYHoQ==
time-stamp@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
timers-browserify@^2.0.4:
version "2.0.11"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
......@@ -9396,15 +9359,6 @@ webpack-node-externals@^2.5.2:
resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-2.5.2.tgz#178e017a24fec6015bc9e672c77958a6afac861d"
integrity sha512-aHdl/y2N7PW2Sx7K+r3AxpJO+aDMcYzMQd60Qxefq3+EwhewSbTBqNumOsCE1JsCUNoyfGj5465N0sSf6hc/5w==
webpack-oss@^2.1.6:
version "2.1.6"
resolved "https://registry.yarnpkg.com/webpack-oss/-/webpack-oss-2.1.6.tgz#7f159063c9cb9ed8cff47a84aa357aae956b78e9"
integrity sha512-2KirISg4bg6bvOdKMZNK3i23ZnJR82Pws3warrwcXjaBOk+G9QW6yonCcV8i1m/sZWBt8tBQo6OkjrQFn/KBMg==
dependencies:
ali-oss "^6.1.1"
ansi-colors "^3.2.4"
fancy-log "^1.3.3"
webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment