#4036 Dump command improved

This commit is contained in:
Juan Ferrer 2022-06-09 18:07:58 +02:00
parent bfa522afbe
commit a0ebfcf3f5
5 changed files with 28 additions and 15 deletions

View File

@ -38,6 +38,9 @@ class Run {
async run(myvc, opts) { async run(myvc, opts) {
const dumpDir = `${opts.myvcDir}/dump`; const dumpDir = `${opts.myvcDir}/dump`;
const serverDir = path.join(__dirname, 'server');
// Fetch dump information
if (!await fs.pathExists(`${dumpDir}/.dump.sql`)) if (!await fs.pathExists(`${dumpDir}/.dump.sql`))
throw new Error('To run local database you have to create a dump first'); throw new Error('To run local database you have to create a dump first');
@ -68,13 +71,27 @@ class Run {
} }
} }
const dockerfilePath = path.join(__dirname, 'server', 'Dockerfile'); // Build base server image
await docker.build(__dirname, {
tag: 'myvc/server-base',
file: path.join(serverDir, 'Dockerfile')
}, opts.debug);
// Build server image
let serverDockerfile = path.join(dumpDir, 'Dockerfile');
if (!await fs.pathExists(serverDockerfile))
serverDockerfile = path.join(serverDir, 'Dockerfile.server');
await docker.build(__dirname, { await docker.build(__dirname, {
tag: 'myvc/server', tag: 'myvc/server',
file: dockerfilePath file: serverDockerfile
}, opts.debug); }, opts.debug);
// Build dump image
const today = new Date(); const today = new Date();
const pad = v => v < 10 ? '0' + v : v; const pad = v => v < 10 ? '0' + v : v;
const year = today.getFullYear(); const year = today.getFullYear();
@ -84,10 +101,12 @@ class Run {
await docker.build(opts.myvcDir, { await docker.build(opts.myvcDir, {
tag: opts.code, tag: opts.code,
file: `${dockerfilePath}.dump`, file: path.join(serverDir, 'Dockerfile.dump'),
buildArg: `STAMP=${stamp}` buildArg: `STAMP=${stamp}`
}, opts.debug); }, opts.debug);
// Run container
const isRandom = opts.random; const isRandom = opts.random;
const dbConfig = Object.assign({}, opts.dbConfig); const dbConfig = Object.assign({}, opts.dbConfig);

View File

@ -1,6 +1,6 @@
{ {
"name": "myvc", "name": "myvc",
"version": "1.4.9", "version": "1.4.10",
"author": "Verdnatura Levante SL", "author": "Verdnatura Levante SL",
"description": "MySQL Version Control", "description": "MySQL Version Control",
"license": "GPL-3.0", "license": "GPL-3.0",

View File

@ -1,19 +1,11 @@
FROM mariadb:10.7.3 FROM mariadb:10.7.3
ENV MYSQL_ROOT_PASSWORD root ENV MYSQL_ROOT_PASSWORD root
ENV TZ Europe/Madrid
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
curl \ curl \
ca-certificates \
tzdata \
&& curl -sL https://apt.verdnatura.es/conf/verdnatura.gpg | apt-key add - \
&& echo "deb http://apt.verdnatura.es/ jessie main" > /etc/apt/sources.list.d/vn.list \
&& apt-get update \
&& apt-get install -y \
vn-mariadb \
&& curl -sL https://deb.nodesource.com/setup_14.x | bash - \ && curl -sL https://deb.nodesource.com/setup_14.x | bash - \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
nodejs \ nodejs \
@ -51,7 +43,6 @@ COPY \
server/docker-start.sh \ server/docker-start.sh \
/usr/local/bin/ /usr/local/bin/
USER mysql
ENTRYPOINT ["docker-start.sh"] ENTRYPOINT ["docker-start.sh"]
CMD ["mysqld"] CMD ["mysqld"]

3
server/Dockerfile.server Normal file
View File

@ -0,0 +1,3 @@
FROM myvc/server-base
USER mysql

View File

@ -8,6 +8,6 @@
"type": "git" "type": "git"
}, },
"dependencies": { "dependencies": {
"myvc": "^1.4.9" "myvc": "^1.4.10"
} }
} }