composerize / decomposerize Goto Github PK
View Code? Open in Web Editor NEWTurn your Docker compose file to Docker run commands
License: MIT License
Turn your Docker compose file to Docker run commands
License: MIT License
Do you want to request a feature or report a bug?
Please provide a sample input docker run command
nginx:
ports:
- '80:80'
volumes:
- '/var/run/docker.sock:/tmp/docker.sock:ro'
image: nginx
What is the current output?*
some output
What is the expected/desired output?
some better output
Thanks for following this template and making decomposerize better for everyone else too!
@composerize I'm using the online version: https://ray.run/tools/docker-compose-to-docker-run
If I input a simplified configuration, decomposerize
returns docker run
commands without docker volume
command, which will failed to start containers without the needed volume:
version: "3"
volumes:
polyfill-cache:
driver: juicedata/juicefs
driver_opts:
name: polyfill-cache
metaurl: postgres://postgres:${META_PASSWORD}@meta-server:5432/juicefs
storage: ${STORAGE_TYPE}
bucket: ${BUCKET}
access-key: ${ACCESS_KEY}
secret-key: ${SECRET_KEY}
services:
meta-server:
image: postgres
environment:
- POSTGRES_USER=postgres
- POSTGRES_DB=juicefs
- POSTGRES_PASSWORD=${META_PASSWORD}
volumes:
- ./data:/var/lib/postgresql/data/
restart: always
api-service:
depends_on:
- meta-server
image: polyfiller/api-service
environment:
- NODE_ENV=production
volumes:
- polyfill-cache:/tmp/@wessberg/polyfiller
restart: always
then input the whole original configuration, an error thrown:
version: "3"
volumes:
polyfill-cache:
driver: juicedata/juicefs
driver_opts:
name: polyfill-cache
metaurl: postgres://postgres:${META_PASSWORD}@meta-server:5432/juicefs
storage: ${STORAGE_TYPE}
bucket: ${BUCKET}
access-key: ${ACCESS_KEY}
secret-key: ${SECRET_KEY}
networks:
polyfiller:
services:
autoheal:
image: willfarrell/autoheal:1.2.0
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: always
meta-server:
depends_on:
- autoheal
image: postgres
environment:
- POSTGRES_USER=postgres
- POSTGRES_DB=juicefs
- POSTGRES_PASSWORD=${META_PASSWORD}
volumes:
- ./data:/var/lib/postgresql/data/
networks:
- polyfiller
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 3s
retries: 5
labels:
- autoheal=true
restart: always
api-service:
depends_on:
- autoheal
- meta-server
image: polyfiller/api-service
environment:
- NODE_ENV=production
volumes:
- polyfill-cache:/tmp/@wessberg/polyfiller
networks:
- polyfiller
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/ || exit 1"]
interval: 300000000s
retries: 5
start_period: 30s
labels:
- autoheal=true
restart: always
logging:
driver: json-file
options:
max-size: 10m
caddy:
depends_on:
- api-service
image: caddy
ports:
- 80:80
- 443:443
networks:
- polyfiller
restart: always
command: caddy reverse-proxy --from polyfiller.app --to api-service:3000
docker run -e POSTGRES_USER=postgres -e POSTGRES_DB=juicefs -e POSTGRES_PASSWORD=${META_PASSWORD} -v ./data:/var/lib/postgresql/data/ --restart always postgres
docker run -e NODE_ENV=production -v polyfill-cache:/tmp/@wessberg/polyfiller --restart always polyfiller/api-service
or
A.forEach is not a function
docker volume create --driver juicedata/juicefs \
--opt name=polyfill-cache
--opt metaurl=postgres://postgres:${META_PASSWORD}@meta-server:5432/juicefs
--opt storage=${STORAGE_TYPE}
--opt bucket=${BUCKET}
--opt access-key=${ACCESS_KEY}
--opt secret-key=${SECRET_KEY}
polyfill-cache
docker run -v ./data:/var/lib/postgresql/data/ \
-e POSTGRES_USER=postgres
-e POSTGRES_DB=juicefs
-e POSTGRES_PASSWORD=${META_PASSWORD}
--restart always
postgres
docker run -v polyfill-cache:/tmp/@wessberg/polyfiller \
-e NODE_ENV=production
--restart always
polyfiller/api-service
Do you want to request a feature or report a bug?
Pretty self-explanatory, as per the Compose Specification some elements can be either an array or a mapping, the latter of which is not recognized by decomposerize.
Please provide a sample input docker run command
services:
alpine:
image: alpine
environment:
NODE_ENV: production
labels:
com.centurylinklabs.watchtower.enable: "false"
sysctls:
net.core.somaxconn: 1024
net.ipv4.tcp_syncookies: 0
What is the current output?*
docker run -e "[object Object]" -l "[object Object]" --sysctl "[object Object]" alpine
What is the expected/desired output?
docker run -e NODE_ENV=production -l com.centurylinklabs.watchtower.enable=false --sysctl net.core.somaxconn=1024 --sysctl net.ipv4.tcp_syncookies=0 alpine
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.