Tutorial Protheus com Docker
As imagens são para uso estritamente de desenvolvimento e não são homologadas para ambientes de produção
Caso seu host utilize alguma distribuição baseada em debian/ubuntu alterar a seguinte variavel de kernel:
# recomenda-se fazer um backup do valor atual (o valor será perdido na próxima inicialização)
sudo echo 32767 > /proc/sys/fs/file-max
Fazer download do tttm120.rpo, sxsbra.txt e sx2.unq
Entrar no portal do cliente e fazer o download do repositório tttm120.rpo e dos arquivos de dicionário sxsbra.txt e sx2.unq.
Gerar dbaccess.ini
docker run --rm \
-v ${PWD}:/local \
--workdir=/local \
totvsengpro/dbaccess-postgres-dev \
/opt/totvs/dbaccess/tools/dbaccesscfg \
-u postgres \
-p postgres \
-a protheus \
-d postgres \
-c '/usr/lib64/libodbc.so' \
-o 'ConnectionMode=2;ConnectionString=DRIVER!{PostgreSQL}@SERVERNAME!postgres-iniciado@PORT!5432@DATABASE!protheus@USERNAME!postgres@PASSWORD!postgres' \
-g 'LicenseServer=license;LicensePort=5555'
sed -e 's/!/=/g' -e 's/@/;/g' dbaccess.ini >dbaccess2.ini
mv -f dbaccess2.ini dbaccess.ini
Gerar o appserver.ini
cat <<EOF >appserver.ini
[environment]
rpodb=top
rpoversion=120
rpolanguage=multi
sourcepath=/opt/totvs/protheus/apo
rootpath=/opt/totvs/protheus/protheus_data
startpath=/system
dbdatabase=postgres
dbalias=protheus
dbserver=dbaccess-postgres
dbport=7890
topmemomega=10
specialkey=exemplo
[general]
buildkillusers=1
consolelog=1
consolefile=/opt/totvs/appserver/console.log
maxstringsize=10
[drivers]
active=tcp
[tcp]
type=tcpip
port=1234
[webapp]
enable=1
port=8080
[lockserver]
enable=1
server=appserver
port=1234
[licenseclient]
server=license
port=5555
[webapp/webapp]
mpp=
[HTTPV11]
ENABLE=1
SOCKETS=HTTPREST
[ONSTART]
JOBS=HTTPJOB
REFRESHRATE=30
[HTTPURI]
URL=/REST
INSTANCES=1,2
PREPAREIN=ALL
[HTTPREST]
SECURITY=1
PORT=8081
URIS=HTTPURI
[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=ENVIRONMENT
EOF
Criando o ambiente no docker
cat <<EOF >docker-compose.yml
version: "3.6"
services:
license:
image: "totvsengpro/license-dev"
postgres-iniciado:
image: "totvsengpro/postgres-dev:12.1.2210_bra"
dbaccess-postgres:
image: "totvsengpro/dbaccess-postgres-dev"
volumes:
- "\${PWD}/dbaccess.ini:/opt/totvs/dbaccess/multi/dbaccess.ini"
appserver:
image: "totvsengpro/appserver-dev"
volumes:
- "\${PWD}/appserver.ini:/opt/totvs/appserver/appserver.ini"
- "\${PWD}/tttm120.rpo:/opt/totvs/protheus/apo/tttm120.rpo"
- "\${PWD}/sx2.unq:/opt/totvs/protheus/protheus_data/systemload/sx2.unq"
- "\${PWD}/sxsbra.txt:/opt/totvs/protheus/protheus_data/systemload/sxsbra.txt"
ports:
- "1234:1234"
- "8080:8080"
- "8081:8081"
EOF