mirror of
https://github.com/1C-Company/docker_fresh.git
synced 2025-01-20 02:59:54 +02:00
initial commit
This commit is contained in:
parent
1b1cd21b4e
commit
3c90490264
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
distr/*
|
||||
__pycache__/
|
130
docker-compose.yml
Normal file
130
docker-compose.yml
Normal file
@ -0,0 +1,130 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
|
||||
db:
|
||||
image: registry.1c709.ru/docker/postgres-pro
|
||||
hostname: db.ikoz.1c709.ru
|
||||
container_name: db.ikoz.1c709.ru
|
||||
volumes:
|
||||
- ./artifact/db/data:/var/lib/1c/pgdata
|
||||
|
||||
srv:
|
||||
image: registry.1c709.ru/docker/core:8.3.14.1993
|
||||
hostname: srv.ikoz.1c709.ru
|
||||
container_name: srv.ikoz.1c709.ru
|
||||
command: srv+cli
|
||||
volumes:
|
||||
- ./artifact/srv/data:/var/lib/1c/data
|
||||
- ./artifact/srv/log:/var/log/1c
|
||||
- ./artifact/mnt:/mnt
|
||||
#- ./conf/nethasp.ini:/opt/1C/v8.3/x86_64/conf/nethasp.ini
|
||||
- ./conf/logcfg.xml:/opt/1C/v8.3/x86_64/conf/logcfg.xml
|
||||
- /tmp/.aksusb:/tmp/.aksusb
|
||||
ports:
|
||||
- 1540-1541:1540-1541
|
||||
- 1538:1538
|
||||
- 1550:1550
|
||||
- 1560-1591:1560-1591
|
||||
- 5900:5900
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
ras:
|
||||
image: registry.1c709.ru/docker/core:8.3.14.1993
|
||||
hostname: ras.ikoz.1c709.ru
|
||||
container_name: ras.ikoz.1c709.ru
|
||||
command: /opt/1C/v8.3/x86_64/ras cluster --port=1545 srv:1540
|
||||
volumes:
|
||||
- ./artifact/ras/log:/var/log/1c
|
||||
- ./conf/logcfg.xml:/opt/1C/v8.3/x86_64/conf/logcfg.xml
|
||||
ports:
|
||||
- 1545:1545
|
||||
|
||||
web:
|
||||
image: registry.1c709.ru/docker/core:8.3.14.1993
|
||||
hostname: web.ikoz.1c709.ru
|
||||
container_name: web.ikoz.1c709.ru
|
||||
command: web
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.web.entrypoints=web"
|
||||
- "traefik.http.routers.web.rule=Host(`ikoz.1c709.ru`) && PathPrefix(`/a/adm`, `/a/openid`)"
|
||||
#- "traefik.http.middlewares.web-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.web.middlewares=https-redirect"
|
||||
- "traefik.http.routers.web-secure.entrypoints=websecure"
|
||||
- "traefik.http.routers.web-secure.rule=Host(`ikoz.1c709.ru`) && PathPrefix(`/a/adm`, `/a/openid`)"
|
||||
- "traefik.http.routers.web-secure.tls=true"
|
||||
- "traefik.http.routers.web-secure.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.web-secure.service=web"
|
||||
- "traefik.http.services.web.loadbalancer.server.port=80"
|
||||
volumes:
|
||||
- ./artifact/web/log:/var/log/1c
|
||||
- ./artifact/mnt:/mnt
|
||||
depends_on:
|
||||
- srv
|
||||
|
||||
site:
|
||||
image: registry.1c709.ru/docker/site
|
||||
hostname: site.ikoz.1c709.ru
|
||||
container_name: site.ikoz.1c709.ru
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.site.entrypoints=web"
|
||||
- "traefik.http.routers.site.rule=Host(`ikoz.1c709.ru`)"
|
||||
#- "traefik.http.middlewares.site-https-redirect.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.site.middlewares=https-redirect"
|
||||
- "traefik.http.routers.site-secure.entrypoints=websecure"
|
||||
- "traefik.http.routers.site-secure.rule=Host(`ikoz.1c709.ru`)"
|
||||
- "traefik.http.routers.site-secure.tls=true"
|
||||
- "traefik.http.routers.site-secure.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.site-secure.service=site"
|
||||
- "traefik.http.services.site.loadbalancer.server.port=8080"
|
||||
volumes:
|
||||
- ./artifact/site/searchIndex:/var/www/content/searchIndex
|
||||
- ./artifact/site/site_files:/var/www/content/site_files
|
||||
- ./artifact/mnt/media:/var/www/content/media/
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
forum:
|
||||
image: registry.1c709.ru/docker/forum
|
||||
hostname: forum.ikoz.1c709.ru
|
||||
container_name: forum.ikoz.1c709.ru
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.forum.entrypoints=web"
|
||||
- "traefik.http.routers.forum.rule=Host(`ikoz.1c709.ru`) && PathPrefix(`/forum`)"
|
||||
- "traefik.http.routers.forum.middlewares=https-redirect"
|
||||
- "traefik.http.routers.forum-secure.entrypoints=websecure"
|
||||
- "traefik.http.routers.forum-secure.rule=Host(`ikoz.1c709.ru`) && PathPrefix(`/forum`)"
|
||||
- "traefik.http.routers.forum-secure.tls=true"
|
||||
- "traefik.http.routers.forum-secure.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.forum-secure.service=forum"
|
||||
- "traefik.http.services.forum.loadbalancer.server.port=8080"
|
||||
#- "traefik.http.middlewares.forum-replacepath.stripprefix.prefixes=/forum"
|
||||
#- "traefik.http.middlewares.forum-replacepath.replacepath.path=/forum"
|
||||
- "traefik.http.routers.forum-secure.middlewares=forum-replacepath"
|
||||
volumes:
|
||||
- ./artifact/forum:/var/www/forum/mess_files
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
gate:
|
||||
image: registry.1c709.ru/docker/gate
|
||||
hostname: gate.ikoz.1c709.ru
|
||||
container_name: gate.ikoz.1c709.ru
|
||||
depends_on:
|
||||
- srv
|
||||
|
||||
#agent:
|
||||
#image: registry.1c709.ru/docker/core:8.3.14.1993
|
||||
#hostname: agent.ikoz.1c709.ru
|
||||
#container_name: agent.ikoz.1c709.ru
|
||||
#command: agent
|
||||
#volumes:
|
||||
#- ./artifact/agent:/var/lib/1c/agent_data
|
||||
#environment:
|
||||
#- INFOBASECONNECTIONSTRING="Srvr=srv.ikoz.1c709.ru;Ref=sm"
|
||||
#ports:
|
||||
# - 1543:1543
|
BIN
images/.DS_Store
vendored
Normal file
BIN
images/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
images/centos/.DS_Store
vendored
Normal file
BIN
images/centos/.DS_Store
vendored
Normal file
Binary file not shown.
29
images/centos/Dockerfile
Normal file
29
images/centos/Dockerfile
Normal file
@ -0,0 +1,29 @@
|
||||
FROM centos:7
|
||||
|
||||
ENV GOSU_VERSION 1.11
|
||||
RUN set -ex; \
|
||||
yum -y install epel-release; \
|
||||
yum -y install glibc-locale-source wget dpkg; \
|
||||
dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
|
||||
wget -O /usr/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
|
||||
wget -O /tmp/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
|
||||
# verify the signature
|
||||
export GNUPGHOME="$(mktemp -d)"; \
|
||||
gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
|
||||
gpg --batch --verify /tmp/gosu.asc /usr/bin/gosu; \
|
||||
rm -r "$GNUPGHOME" /tmp/gosu.asc; \
|
||||
chmod +x /usr/bin/gosu; \
|
||||
# verify that the binary works
|
||||
gosu nobody true; \
|
||||
yum -y remove wget dpkg; \
|
||||
# russian locale
|
||||
localedef -f UTF-8 -i ru_RU ru_RU.UTF-8; \
|
||||
# ImageMagick & httpd & xorg-x11-server-Xvf
|
||||
yum -y --setopt=tsflags=nodocs install ImageMagick httpd which xorg-x11-xauth dbus-x11 xorg-x11-server-Xvfb cifs-utils; \
|
||||
dbus-uuidgen > /var/lib/dbus/machine-id; \
|
||||
yum clean all
|
||||
|
||||
ENV LANG ru_RU.utf8
|
||||
ENV DISPLAY localhost:99.0
|
||||
|
||||
ADD ./fonts/msttcorefonts.tar.gz /usr/share/fonts/truetype/msttcorefonts/
|
BIN
images/centos/fonts/msttcorefonts.tar.gz
Normal file
BIN
images/centos/fonts/msttcorefonts.tar.gz
Normal file
Binary file not shown.
19
images/db/Dockerfile
Normal file
19
images/db/Dockerfile
Normal file
@ -0,0 +1,19 @@
|
||||
FROM fresh/centos
|
||||
|
||||
ADD ./entrypoint.sh /
|
||||
|
||||
RUN localedef -f UTF-8 -i ru_RU ru_RU.UTF-8 \
|
||||
&& yum install -y http://1c.postgrespro.ru/keys/postgrespro-1c-centos96.noarch.rpm \
|
||||
&& yum makecache \
|
||||
&& yum -y --setopt=tsflags=nodocs install postgresql-pro-1c-9.6 --nogpgcheck \
|
||||
&& chmod +x /entrypoint.sh
|
||||
|
||||
EXPOSE 5432
|
||||
|
||||
ENV PGDATA /var/lib/1c/pgdata
|
||||
|
||||
VOLUME ${PGDATA}
|
||||
|
||||
WORKDIR /usr/pgsql-9.6/bin
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
CMD ["./postgres"]
|
13
images/db/entrypoint.sh
Normal file
13
images/db/entrypoint.sh
Normal file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
chown -R postgres:postgres "$PGDATA"
|
||||
|
||||
if [ -z "$(ls -A "$PGDATA")" ]; then
|
||||
gosu postgres ./initdb
|
||||
echo "synchronous_commit = off" >> $PGDATA/postgresql.conf
|
||||
fi
|
||||
|
||||
command=$@
|
||||
exec gosu postgres $command
|
BIN
images/site/.DS_Store
vendored
Normal file
BIN
images/site/.DS_Store
vendored
Normal file
Binary file not shown.
13
images/site/Dockerfile
Normal file
13
images/site/Dockerfile
Normal file
@ -0,0 +1,13 @@
|
||||
FROM tomcat:7.0-jre8-alpine
|
||||
|
||||
ENV JAVA_OPTS "${JAVA_OPTS} -Xms512m -Xmx1024m -XX:+UseParallelGC -server "
|
||||
|
||||
RUN rm -rf /usr/local/tomcat/webapps/* && \
|
||||
mkdir -p /var/www/content/searchIndex \
|
||||
mkdir -p /var/www/content/site_files
|
||||
|
||||
COPY ./distr/site/ROOT.war /usr/local/tomcat/webapps/
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
CMD ["catalina.sh", "run"]
|
50
images/site/conf/context.xml
Normal file
50
images/site/conf/context.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!-- The contents of this file will be loaded for each web application -->
|
||||
<Context>
|
||||
|
||||
<Resource
|
||||
name="jdbc/freshSiteDS"
|
||||
auth="Container"
|
||||
type="javax.sql.DataSource"
|
||||
driverClassName="org.postgresql.Driver"
|
||||
url="jdbc:postgresql://db:5432/site"
|
||||
username="site"
|
||||
password="12345Qwerty"
|
||||
removeAbandoned="true"
|
||||
removeAbandonedTimeout="90"
|
||||
logAbandoned="true"
|
||||
maxActive="30"
|
||||
maxIdle="20"
|
||||
maxWait="-1" />
|
||||
|
||||
<!-- Default set of monitored resources -->
|
||||
<WatchedResource>WEB-INF/web.xml</WatchedResource>
|
||||
|
||||
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
|
||||
<!--
|
||||
<Manager pathname="" />
|
||||
-->
|
||||
|
||||
<!-- Uncomment this to enable Comet connection tacking (provides events
|
||||
on session expiration as well as webapp lifecycle) -->
|
||||
<!--
|
||||
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
|
||||
-->
|
||||
|
||||
</Context>
|
148
images/site/conf/server.xml
Normal file
148
images/site/conf/server.xml
Normal file
@ -0,0 +1,148 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!-- Note: A "Server" is not itself a "Container", so you may not
|
||||
define subcomponents such as "Valves" at this level.
|
||||
Documentation at /docs/config/server.html
|
||||
-->
|
||||
<Server port="8005" shutdown="SHUTDOWN">
|
||||
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
|
||||
<!-- Security listener. Documentation at /docs/config/listeners.html
|
||||
<Listener className="org.apache.catalina.security.SecurityListener" />
|
||||
-->
|
||||
<!--APR library loader. Documentation at /docs/apr.html -->
|
||||
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
|
||||
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
|
||||
<Listener className="org.apache.catalina.core.JasperListener" />
|
||||
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
|
||||
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
|
||||
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
|
||||
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
|
||||
|
||||
<!-- Global JNDI resources
|
||||
Documentation at /docs/jndi-resources-howto.html
|
||||
-->
|
||||
<GlobalNamingResources>
|
||||
<!-- Editable user database that can also be used by
|
||||
UserDatabaseRealm to authenticate users
|
||||
-->
|
||||
<Resource name="UserDatabase" auth="Container"
|
||||
type="org.apache.catalina.UserDatabase"
|
||||
description="User database that can be updated and saved"
|
||||
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
|
||||
pathname="conf/tomcat-users.xml" />
|
||||
</GlobalNamingResources>
|
||||
|
||||
<!-- A "Service" is a collection of one or more "Connectors" that share
|
||||
a single "Container" Note: A "Service" is not itself a "Container",
|
||||
so you may not define subcomponents such as "Valves" at this level.
|
||||
Documentation at /docs/config/service.html
|
||||
-->
|
||||
<Service name="Catalina">
|
||||
|
||||
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
|
||||
<!--
|
||||
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
|
||||
maxThreads="150" minSpareThreads="4"/>
|
||||
-->
|
||||
|
||||
|
||||
<!-- A "Connector" represents an endpoint by which requests are received
|
||||
and responses are returned. Documentation at :
|
||||
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
|
||||
Java AJP Connector: /docs/config/ajp.html
|
||||
APR (HTTP/AJP) Connector: /docs/apr.html
|
||||
Define a non-SSL HTTP/1.1 Connector on port 8080
|
||||
-->
|
||||
<Connector port="8080" protocol="HTTP/1.1"
|
||||
connectionTimeout="20000"
|
||||
redirectPort="8443"
|
||||
proxyPort="443"
|
||||
scheme="https"
|
||||
secure="true"
|
||||
URIEncoding="UTF-8"/>
|
||||
<!-- A "Connector" using the shared thread pool-->
|
||||
<!--
|
||||
<Connector executor="tomcatThreadPool"
|
||||
port="8080" protocol="HTTP/1.1"
|
||||
connectionTimeout="20000"
|
||||
redirectPort="8443" />
|
||||
-->
|
||||
<!-- Define a SSL HTTP/1.1 Connector on port 8443
|
||||
This connector uses the BIO implementation that requires the JSSE
|
||||
style configuration. When using the APR/native implementation, the
|
||||
OpenSSL style configuration is required as described in the APR/native
|
||||
documentation -->
|
||||
<!--
|
||||
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
|
||||
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
|
||||
clientAuth="false" sslProtocol="TLS" />
|
||||
-->
|
||||
|
||||
<!-- Define an AJP 1.3 Connector on port 8009 -->
|
||||
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
|
||||
|
||||
|
||||
<!-- An Engine represents the entry point (within Catalina) that processes
|
||||
every request. The Engine implementation for Tomcat stand alone
|
||||
analyzes the HTTP headers included with the request, and passes them
|
||||
on to the appropriate Host (virtual host).
|
||||
Documentation at /docs/config/engine.html -->
|
||||
|
||||
<!-- You should set jvmRoute to support load-balancing via AJP ie :
|
||||
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
|
||||
-->
|
||||
<Engine name="Catalina" defaultHost="localhost">
|
||||
|
||||
<!--For clustering, please take a look at documentation at:
|
||||
/docs/cluster-howto.html (simple how to)
|
||||
/docs/config/cluster.html (reference documentation) -->
|
||||
<!--
|
||||
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
|
||||
-->
|
||||
|
||||
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
|
||||
via a brute-force attack -->
|
||||
<Realm className="org.apache.catalina.realm.LockOutRealm">
|
||||
<!-- This Realm uses the UserDatabase configured in the global JNDI
|
||||
resources under the key "UserDatabase". Any edits
|
||||
that are performed against this UserDatabase are immediately
|
||||
available for use by the Realm. -->
|
||||
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
|
||||
resourceName="UserDatabase"/>
|
||||
</Realm>
|
||||
|
||||
<Host name="localhost" appBase="webapps"
|
||||
unpackWARs="true" autoDeploy="true">
|
||||
|
||||
<!-- SingleSignOn valve, share authentication between web applications
|
||||
Documentation at: /docs/config/valve.html -->
|
||||
<!--
|
||||
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
|
||||
-->
|
||||
|
||||
<!-- Access log processes all example.
|
||||
Documentation at: /docs/config/valve.html
|
||||
Note: The pattern used is equivalent to using pattern="common" -->
|
||||
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
|
||||
prefix="localhost_access_log." suffix=".txt"
|
||||
pattern="%h %l %u %t "%r" %s %b" />
|
||||
|
||||
</Host>
|
||||
</Engine>
|
||||
</Service>
|
||||
</Server>
|
27
install.py
Normal file
27
install.py
Normal file
@ -0,0 +1,27 @@
|
||||
import subprocess
|
||||
import pathlib
|
||||
import os
|
||||
import modules.site as site
|
||||
import modules.centos as centos
|
||||
import modules.db as db
|
||||
|
||||
sep = str(os.path.sep)
|
||||
this_path = str(pathlib.Path().absolute()) + sep
|
||||
distr_path = this_path + 'distr' + sep
|
||||
|
||||
images = []
|
||||
images.append(centos.New())
|
||||
images.append(db.New())
|
||||
images.append(site.New())
|
||||
|
||||
print('Building start')
|
||||
for image in images:
|
||||
|
||||
for command in image.commands:
|
||||
print(command)
|
||||
subprocess.call(' '.join(command), shell=True)
|
||||
|
||||
subprocess.run(['docker', 'build', '-t', 'fresh/' + image.name, 'images/' + image.name])
|
||||
print('Building', image.name, 'is fihish')
|
||||
|
||||
print('Building finish')
|
27
modules/centos.py
Normal file
27
modules/centos.py
Normal file
@ -0,0 +1,27 @@
|
||||
import modules.helper as helper
|
||||
|
||||
def download_postgresql_connector():
|
||||
command = helper.new_docker_command()
|
||||
command.append('alpine')
|
||||
command.append('wget')
|
||||
command.append('-O')
|
||||
command.append('/out_files/postgresql.jar')
|
||||
command.append('https://jdbc.postgresql.org/download/postgresql-42.2.4.jar')
|
||||
|
||||
return command
|
||||
|
||||
def add_all_commands():
|
||||
|
||||
commands = []
|
||||
commands.append(download_postgresql_connector())
|
||||
|
||||
return commands
|
||||
|
||||
class New():
|
||||
|
||||
name = ''
|
||||
commands = []
|
||||
|
||||
def __init__(self):
|
||||
self.name = 'centos'
|
||||
self.commands = add_all_commands()
|
9
modules/db.py
Normal file
9
modules/db.py
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
class New():
|
||||
|
||||
name = ''
|
||||
commands = []
|
||||
|
||||
def __init__(self):
|
||||
self.name = 'db'
|
||||
self.commands = []
|
25
modules/helper.py
Normal file
25
modules/helper.py
Normal file
@ -0,0 +1,25 @@
|
||||
import pathlib
|
||||
import os
|
||||
|
||||
sep = str(os.path.sep)
|
||||
this_path = str(pathlib.Path().absolute()) + sep
|
||||
distr_path = this_path + 'distr' + sep
|
||||
|
||||
def replace_sep(path):
|
||||
return path.replace('/', sep)
|
||||
|
||||
def new_docker_command(extra_path=None):
|
||||
command = []
|
||||
command.append('docker')
|
||||
command.append('run')
|
||||
command.append('--rm')
|
||||
command.append('-v')
|
||||
|
||||
if extra_path != None:
|
||||
current_distr_path = this_path + extra_path
|
||||
current_distr_path = current_distr_path.replace('/', sep)
|
||||
else:
|
||||
current_distr_path = distr_path
|
||||
|
||||
command.append(current_distr_path + ':/out_files')
|
||||
return command
|
55
modules/site.py
Normal file
55
modules/site.py
Normal file
@ -0,0 +1,55 @@
|
||||
import subprocess
|
||||
import pathlib
|
||||
import os
|
||||
import modules.helper as helper
|
||||
|
||||
def add_site_dir(command):
|
||||
command.append('-v')
|
||||
command.append(helper.this_path + helper.replace_sep('images/site') + ':/main_dir')
|
||||
|
||||
def delete_site_dir():
|
||||
command = helper.new_docker_command('images/site/distr')
|
||||
command.append('alpine')
|
||||
command.append('rm')
|
||||
command.append('-rf')
|
||||
command.append('/out_files/site')
|
||||
|
||||
return command
|
||||
|
||||
def unzip_site_dir():
|
||||
command = helper.new_docker_command()
|
||||
add_site_dir(command)
|
||||
command.append('kubeless/unzip')
|
||||
command.append('unzip')
|
||||
command.append('/out_files/site_*.zip')
|
||||
command.append('-d')
|
||||
command.append('/main_dir/distr/site')
|
||||
|
||||
return command
|
||||
|
||||
def rename_site_file():
|
||||
command = helper.new_docker_command('images/site/distr')
|
||||
command.append('alpine')
|
||||
command.append('sh')
|
||||
command.append('-c')
|
||||
command.append('"mv /out_files/site/site*.war /out_files/site/ROOT.war"')
|
||||
|
||||
return command
|
||||
|
||||
def add_all_commands():
|
||||
|
||||
commands = []
|
||||
commands.append(delete_site_dir())
|
||||
commands.append(unzip_site_dir())
|
||||
commands.append(rename_site_file())
|
||||
|
||||
return commands
|
||||
|
||||
class New():
|
||||
|
||||
name = ''
|
||||
commands = []
|
||||
|
||||
def __init__(self):
|
||||
self.name = 'site'
|
||||
self.commands = add_all_commands()
|
Loading…
x
Reference in New Issue
Block a user